Page MenuHomeFreeBSD

Address unintended jump of calculated cwnd when leaving slowstart
ClosedPublic

Authored by rscheff on Jul 20 2020, 4:56 PM.

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 OK
Unit
No Unit Test Coverage
Build Status
Buildable 32450
Build 29927: 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

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