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)
Mon, May 6, 9:31 AM
Unknown Object (File)
Sun, May 5, 9:08 AM
Unknown Object (File)
Sat, Apr 27, 1:58 AM
Unknown Object (File)
Sat, Apr 27, 1:58 AM
Unknown Object (File)
Sat, Apr 27, 1:57 AM
Unknown Object (File)
Sat, Apr 27, 12:31 AM
Unknown Object (File)
Thu, Apr 25, 12:31 AM
Unknown Object (File)
Feb 18 2024, 8:28 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 51581
Build 48472: 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

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...