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)
Tue, Sep 19, 2:45 PM
Unknown Object (File)
Aug 13 2023, 11:17 AM
Unknown Object (File)
Jul 6 2023, 3:15 AM
Unknown Object (File)
Jun 20 2023, 5:25 PM
Unknown Object (File)
May 30 2023, 1:39 AM
Unknown Object (File)
May 29 2023, 6:09 PM
Unknown Object (File)
May 28 2023, 3:01 PM
Unknown Object (File)
May 28 2023, 9:23 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...