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

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

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 ↗(On Diff #74724)

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