Page MenuHomeFreeBSD

cc_cubic: Use units of micro seconds (usecs) instead of ticks in rtt.
ClosedPublic

Authored by cc on May 20 2023, 3:22 PM.
Tags
None
Referenced Files
Unknown Object (File)
Feb 18 2024, 8:28 AM
Unknown Object (File)
Dec 20 2023, 7:39 AM
Unknown Object (File)
Dec 12 2023, 2:32 PM
Unknown Object (File)
Nov 28 2023, 2:40 PM
Unknown Object (File)
Nov 12 2023, 2:11 AM
Unknown Object (File)
Nov 6 2023, 10:46 PM
Unknown Object (File)
Nov 5 2023, 2:08 PM
Unknown Object (File)
Oct 11 2023, 1:12 AM

Details

Reviewers
rscheff
tuexen
Group Reviewers
transport
Summary

This improves TCP friendly cwnd in cases of low latency high drop rate
networks.
Tests show +42% and +37% better performance in 1Gpbs and 10Gbps cases.

test result in detail: testD40185

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 51714
Build 48605: arc lint + arc unit

Event Timeline

cc requested review of this revision.May 20 2023, 3:22 PM
cc edited the summary of this revision. (Show Details)
sys/netinet/cc/cc_cubic.h
113

Why isn't this converted?

232–233

Should there be a space between * and tick?

sys/netinet/cc/cc_cubic.h
113

I am not sure if there is a high resolution timer to use for the base stack. So this is a workaround.

correct the lower bound for min_rtt_usecs and correct some space and comments

You might want to wait also for Richards' approval, since he is much more familiar with the code than I am.

This revision is now accepted and ready to land.May 26 2023, 5:48 PM
sys/netinet/cc/cc_cubic.h
113

Secondly, cubic_data->t_last_cong as an intermediate variable is used for usecs_since_cong calculation in cubic_ack_received(). The usecs_since_cong is converted by using usec there. So I don't think we need to convert cubic_data->t_last_cong by TICKS_2_USEC(ticks).

You might want to wait also for Richards' approval, since he is much more familiar with the code than I am.

Sounds good to me. :)

Not changing the generic rtt base stack unit / measuring, just improviing the granularity/precision of the calculations within Cubic. since this improves cubic performance, let's put this in prior 14 branching...