Page MenuHomeFreeBSD

LRO nsegs
ClosedPublic

Authored by lstewart on Aug 18 2016, 3:15 PM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 24 2023, 11:28 AM
Unknown Object (File)
Dec 19 2023, 3:27 AM
Unknown Object (File)
Nov 13 2023, 11:47 AM
Unknown Object (File)
Oct 20 2023, 9:22 AM
Unknown Object (File)
Oct 20 2023, 2:58 AM
Unknown Object (File)
Oct 19 2023, 11:49 PM
Unknown Object (File)
Oct 19 2023, 3:37 AM
Unknown Object (File)
Sep 6 2023, 4:20 AM
Subscribers

Details

Summary

Pass the number of segments coalesced by LRO up the stack by repurposing the tso_segsz pkthdr field during RX processing, and use the information in TCP for more correct accounting and as a congestion control input. This is only a start, and an audit of other uses for the data is left as future work.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

lstewart retitled this revision from to LRO nsegs.
lstewart updated this object.
lstewart edited the test plan for this revision. (Show Details)
lstewart added reviewers: rrs, gallatin, np, bz.
lstewart set the repository for this revision to rS FreeBSD src repository - subversion.
lstewart added a subscriber: transport.
rrs edited edge metadata.

Yeah!!!

This revision is now accepted and ready to land.Aug 18 2016, 3:54 PM
gallatin edited edge metadata.

I can't prove my paranoia, so I think we should get this in, as it will be an improvement on balance.

sys/netinet/tcp_lro.c
395

I have a slight twinge of paranoia that not every path that does not flow through LRO will use a properly initialized (zeroed) pkthdr mbuf, and we might see garbage in this field.

A similar-ish problem in the current LRO implementation is that it doesn't heed the TCP PSH bit and continues to aggregate frames, and the upper layers do not know how many frames with PSH bit were compressed into the LRO'd packet.

This revision was automatically updated to reflect the committed changes.