Page MenuHomeFreeBSD

netmap: Try to count packet drops in emulated mode
ClosedPublic

Authored by markj on Jan 15 2023, 5:03 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 26, 8:46 AM
Unknown Object (File)
Fri, Apr 26, 8:44 AM
Unknown Object (File)
Fri, Apr 26, 8:44 AM
Unknown Object (File)
Fri, Apr 26, 1:37 AM
Unknown Object (File)
Mon, Apr 22, 10:54 PM
Unknown Object (File)
Dec 23 2023, 12:23 AM
Unknown Object (File)
Dec 12 2023, 6:42 AM
Unknown Object (File)
Jun 20 2023, 5:18 PM
Subscribers

Details

Summary

Right now we have no visibility into packet drops within netmap. Start
trying to make packet loss issues more visible by counting queue drops
in the transmit path, and in the input path for interfaces running in
emulated mode, where we place received packets in a bounded software
queue that is processed by rxsync.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj requested review of this revision.Jan 15 2023, 5:03 PM

No objections for emulated mode, but keep in mind that patched drivers do not have the counters incremented to avoid the performance hit.
(Although we may revisit this with some proper overahd measurements in place).

This revision is now accepted and ready to land.Jan 16 2023, 8:55 PM

No objections for emulated mode, but keep in mind that patched drivers do not have the counters incremented to avoid the performance hit.
(Although we may revisit this with some proper overahd measurements in place).

I think this is should be acceptable if we merely count drops though?

I do see that iflib_netmap_(tx|rx)sync() count packets and bytes, just once per call, which I expect avoids most of the performance hit.

Yes, indeed, this is definitely fine! That was just a note on the historical approach.
We could later even increment the counters to emulated rxsync and txsync methods, since those increments would apply once per batch (like in iflib).