-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Conversation
Codecov Report
@@ Coverage Diff @@
## master #4456 +/- ##
========================================
+ Coverage 76.7% 78.5% +1.8%
========================================
Files 176 176
Lines 32363 31683 -680
========================================
+ Hits 24823 24874 +51
+ Misses 7540 6809 -731 |
Codecov Report
@@ Coverage Diff @@
## master #4456 +/- ##
========================================
- Coverage 79% 76.5% -2.5%
========================================
Files 176 177 +1
Lines 31245 32311 +1066
========================================
+ Hits 24707 24746 +39
- Misses 6538 7565 +1027 |
@@ -238,7 +242,7 @@ impl Packets { | |||
} | |||
trace!("got {} packets", npkts); | |||
i += npkts; | |||
if npkts != NUM_RCVMMSGS || i >= 1024 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This check for NUM_RCVMMSGS is important, it's a signal that there's nothing there now. Do you propose we poll for a full millisecond instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if the buffer is not full (1k limit is not hit). This early exit creates a lot of really small packet buffers which clog up the banking stage. Small batch performance is much worse than larger batches. I think it's better to take the latency hit early in the pipeline to allow them to clear faster later in the pipeline.
bf8a444
to
08f72d6
Compare
08f72d6
to
afa188a
Compare
Problem
packet receiver creates lots of hardly-used packets buffers. This causes poor banking and forwarding performance because there are too many small batches in the pipeline.
Summary of Changes
Coalesce packets from streamer better.
Fixes #