Skip to content

Commit 96e8a43

Browse files
committed
add logs
Signed-off-by: Egor Lazarchuk <[email protected]>
1 parent 0588bff commit 96e8a43

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

src/vmm/src/devices/virtio/net/device.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,13 @@ impl Net {
327327
}
328328

329329
// Attempt frame delivery.
330+
// let t = std::time::Instant::now();
330331
let success = self.do_write_frame_to_guest().is_ok();
332+
// warn!(
333+
// "do_write_frame_to_guest took: {}ns success: {}",
334+
// t.elapsed().as_nanos(),
335+
// success
336+
// );
331337

332338
// Undo the tokens consumption if guest delivery failed.
333339
if !success {
@@ -354,11 +360,14 @@ impl Net {
354360

355361
let mut num_descriptors_used: u16 = 0;
356362
while let Some(descriptor) = &next_descriptor {
363+
// warn!("descriptor {num_descriptors_used} len: {}", descriptor.len);
364+
// warn!("current chunk len: {}", chunk.len());
357365
if !descriptor.is_write_only() {
358366
return Err(FrontendError::ReadOnlyDescriptor);
359367
}
360368

361369
let len = std::cmp::min(chunk.len(), descriptor.len as usize);
370+
// warn!("writing chunk with len: {}", len);
362371
match mem.write_slice(&chunk[..len], descriptor.addr) {
363372
Ok(()) => {
364373
num_descriptors_used += 1;
@@ -373,6 +382,7 @@ impl Net {
373382
return Err(FrontendError::GuestMemory(err));
374383
}
375384
}
385+
// warn!("remaining chunk len: {}", chunk.len());
376386

377387
// If chunk is empty we are done here.
378388
if chunk.is_empty() {
@@ -395,8 +405,13 @@ impl Net {
395405

396406
let queue = &mut self.queues[RX_INDEX];
397407

408+
// let mut i = 0;
398409
let mut bytes = &self.rx_frame_buf[self.rx_bytes_send..self.rx_bytes_read];
410+
warn!("queue size: {}", queue.len(mem));
411+
warn!("do_write_frame_to_guest bytes len: {}", bytes.len());
399412
loop {
413+
// i += 1;
414+
// warn!("do_write_frame_to_guest iteration: {i}");
400415
let head_descriptor = queue.pop_or_enable_notification(mem).ok_or_else(|| {
401416
self.metrics.no_rx_avail_buffer.inc();
402417
FrontendError::EmptyQueue
@@ -410,8 +425,15 @@ impl Net {
410425
self.rx_header_addr = Some(head_descriptor.addr);
411426
}
412427

428+
// warn!("do_write_frame_to_guest: head index: {}", head_index);
429+
413430
match Self::write_to_descriptor_chain(mem, bytes, head_descriptor, &self.metrics) {
414431
Ok((remainin_chunk, num_descriptors_used)) => {
432+
// warn!(
433+
// "remainin_chunk len: {}, num_descriptors_used: {}",
434+
// remainin_chunk.len(),
435+
// num_descriptors_used
436+
// );
415437
self.rx_bytes_send += self.rx_bytes_read - remainin_chunk.len();
416438
self.rx_descriptors_used += num_descriptors_used;
417439
let bytes_written =
@@ -442,6 +464,10 @@ impl Net {
442464
)
443465
};
444466
header.num_buffers = self.rx_descriptors_used;
467+
// warn!(
468+
// "Updating header with num_buffers: {}",
469+
// self.rx_descriptors_used
470+
// );
445471

446472
self.rx_bytes_send = 0;
447473
self.rx_header_addr = None;
@@ -553,7 +579,10 @@ impl Net {
553579
}
554580

555581
fn process_rx(&mut self) -> Result<(), DeviceError> {
582+
// warn!("process_rx");
556583
// Read as many frames as possible.
584+
585+
let t = std::time::Instant::now();
557586
loop {
558587
match self.read_from_mmds_or_tap() {
559588
Ok(_) => {
@@ -581,6 +610,7 @@ impl Net {
581610
}
582611
}
583612
}
613+
warn!("process_rx took: {}ns", t.elapsed().as_nanos());
584614

585615
// At this point we processed as many Rx frames as possible.
586616
// We have to wake the guest if at least one descriptor chain has been used.
@@ -589,6 +619,7 @@ impl Net {
589619

590620
// Process the deferred frame first, then continue reading from tap.
591621
fn handle_deferred_frame(&mut self) -> Result<(), DeviceError> {
622+
warn!("handle_deferred_frame");
592623
if self.rate_limited_rx_single_frame() {
593624
self.rx_deferred_frame = false;
594625
// process_rx() was interrupted possibly before consuming all

0 commit comments

Comments
 (0)