Page MenuHomeFreeBSD

Compressed ack enhancements to LRO
ClosedPublic

Authored by rrs on Jan 27 2021, 5:18 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mar 2 2024, 1:34 PM
Unknown Object (File)
Jan 26 2024, 3:22 PM
Unknown Object (File)
Jan 26 2024, 3:18 PM
Unknown Object (File)
Jan 26 2024, 3:18 PM
Unknown Object (File)
Jan 26 2024, 3:18 PM
Unknown Object (File)
Jan 26 2024, 12:40 PM
Unknown Object (File)
Jan 16 2024, 7:06 PM
Unknown Object (File)
Jan 12 2024, 8:23 AM
Subscribers

Details

Summary

For quite some time NF has had a new enhancement to LRO which
allows a transport (tcp) to get a number of compressed acknowledgements
in one small (or large) mbuf. This saves further CPU and can create
added fast paths since you only have one cache miss getting the
mbuf into cache and then from there you can walk through the small
mbuf that gives TCP all the ack information it needs.

Now the transport needs to support this new type of ack processing
and so indicate that on the inp otherwise the processing stays as before.
After these changes are in the follow on will be an updated rack that
uses these features to make pacing more affordable.

Test Plan

We have been running this code at NF now for roughly 6 months, though
full testing cannot be done without the rack update since the transport must
subscribe to this feature. Only limited testing, making sure not setting the flags
does not change the existing LRO behavior, can be done without an transport
that subscribes to the new type of acknowledgment via inp_flags2 flags.

Diff Detail

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

Event Timeline

rrs requested review of this revision.Jan 27 2021, 5:18 PM

Looks like I forgot to make sure we get the counters properly initialized in tcp_subr.c opps.

This revision is now accepted and ready to land.Feb 4 2021, 5:20 PM