Page MenuHomeFreeBSD

Add knob to control tx ring abdication.
ClosedPublic

Authored by shurd on Jul 17 2018, 5:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 17 2024, 9:47 AM
Unknown Object (File)
Dec 20 2023, 5:45 AM
Unknown Object (File)
Aug 10 2023, 2:20 AM
Unknown Object (File)
Aug 10 2023, 2:18 AM
Unknown Object (File)
Aug 10 2023, 2:18 AM
Unknown Object (File)
Aug 6 2023, 11:30 PM
Unknown Object (File)
Jun 13 2023, 8:52 PM
Unknown Object (File)
May 24 2023, 3:34 PM
Subscribers

Details

Summary

r323954 changed the mp ring behaviour when 64-bit atomics were
available to abdicate the TX ring rather than having one become a
consumer thereby running to completion on TX. The consumer of the mp
ring was then triggered in the tx task rather than blocking the TX call.
While this significantly lowered the number of RX drops in small-packet
forwarding, it also negatively impacts TX performance.

With this change, the default behaviour is reverted, causing one TX ring
to become a consumer during the enqueue call. A new sysctl,
dev.X.Y.iflib.tx_abdicate is added to control this behaviour.

Test Plan

Test with small packet forwarding as well as under more
normal loads.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

I'm not actually sure where the best place to document this new sysctl is... I'm open to suggestions.

This revision is now accepted and ready to land.Jul 17 2018, 7:10 PM
This revision was automatically updated to reflect the committed changes.