Page MenuHomeFreeBSD

Address unintended jump of calculated cwnd when leaving slowstart
ClosedPublic

Authored by rscheff on Jul 20 2020, 4:56 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 12, 9:01 AM
Unknown Object (File)
Tue, Apr 9, 7:48 PM
Unknown Object (File)
Sun, Apr 7, 11:13 AM
Unknown Object (File)
Sun, Mar 31, 1:33 PM
Unknown Object (File)
Sun, Mar 31, 1:33 PM
Unknown Object (File)
Sun, Mar 31, 1:51 AM
Unknown Object (File)
Sat, Mar 30, 10:11 AM
Unknown Object (File)
Sat, Mar 30, 10:11 AM
Subscribers

Details

Summary

D23655 addresses jumps of cubic cwnd due to outdated t_last_cong
data, but initializing K to zero introduced a different miscalculation,
where cwnd would suddenly jump to the recorded max_cwnd instead of
gradually increasing either using the tcp-friendly equation, or the
concave growth region.

Properly calculating K instead of resetting it to zero resolves this issue.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 32442
Build 29919: arc lint + arc unit

Event Timeline

  • calc ticks_since_cong properly
This revision is now accepted and ready to land.Jul 20 2020, 10:39 PM
  • record going out from slowstart at the earliest possible moment
This revision now requires review to proceed.Jul 20 2020, 11:09 PM
This revision is now accepted and ready to land.Jul 20 2020, 11:11 PM
cc requested changes to this revision.Jul 30 2020, 2:36 PM

Tested with my results: https://github.com/ccui1000/freebsd-tcp/wiki/test-D25746

Other than the comment to complement, I have no issues about this change.

sys/netinet/cc/cc_cubic.c
140

Suggest complement the comment above this added condition.

This revision now requires changes to proceed.Jul 30 2020, 2:36 PM
  • update comment to correctly describe conditionals

Looks good. Thanks for picking this up.

This revision is now accepted and ready to land.Aug 7 2020, 1:58 PM