On Thu, Aug 31, 2017 at 10:10 PM, Alexei Starovoitov
[off-list ref] wrote:
On Thu, Aug 31, 2017 at 05:00:13PM -0400, Willem de Bruijn wrote:
quoted
From: Willem de Bruijn <willemb@google.com>
Documentation for this feature was missing from the patchset.
Copied a lot from the netdev 2.1 paper, addressing some small
interface changes since then.
Signed-off-by: Willem de Bruijn <willemb@google.com>
...
quoted
+Notification Batching
+~~~~~~~~~~~~~~~~~~~~~
+
+Multiple outstanding packets can be read at once using the recvmmsg
+call. This is often not needed. In each message the kernel returns not
+a single value, but a range. It coalesces consecutive notifications
+while one is outstanding for reception on the error queue.
+
+When a new notification is about to be queued, it checks whether the
+new value extends the range of the notification at the tail of the
+queue. If so, it drops the new notification packet and instead increases
+the range upper value of the outstanding notification.
Would it make sense to mention that max notification range is 32-bit?
So each 4Gbyte of xmit bytes there will be a notification.
In modern 40Gbps NICs it's not a lot. Means that there will be
at least one notification every second.
Or I misread the code?
You're right. The doc does mention that the counter and range
are 32-bit. I can state more explicitly that that bounds the working
set size to 4GB. Do you expect this to be problematic? Processing
a single notification per 4GB of data should not be a significant
cost in itself.
Thanks for the doc!
Thanks for reviewing :)
Acked-by: Alexei Starovoitov <ast@kernel.org>