Page MenuHomeFreeBSD

Implement sysctl for the min/max values of the TCP persist timer
ClosedPublic

Authored by j-nitrology.com on Jan 21 2016, 9:14 PM.
Tags
None
Referenced Files
F81969434: D5024.id12727.diff
Sat, Dec 14, 6:58 AM
F81969312: D5024.id12574.diff
Sat, Dec 14, 4:53 AM
F81969019: D5024.diff
Sat, Dec 14, 1:50 AM
Unknown Object (File)
Mon, Dec 2, 11:52 AM
Unknown Object (File)
Mon, Dec 2, 11:45 AM
Unknown Object (File)
Thu, Nov 14, 10:48 PM
Unknown Object (File)
Nov 13 2024, 11:43 AM
Unknown Object (File)
Nov 13 2024, 11:43 AM
Subscribers

Details

Summary

Currently these timers are hardcoded as TCPTV_PERSMIN TCPTV_PERSMAX with 5 seconds and 60 seconds, respectively. This simple change moves them into sysctls that can be tuned live. The default of 5s and 60s has been retained.

Test Plan

This has been running on production systems within Limelight, and the tuned sysctls value are seen to be used. This can easily be tested as it can be tuned live. The easiest test might be a zero window situation. If you can produce zero window packets from a client, you should see the server now sending the first probe at the specified persmin.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

j-nitrology.com retitled this revision from to Implement sysctl for the min/max values of the TCP persist timer.
j-nitrology.com updated this object.
j-nitrology.com edited the test plan for this revision. (Show Details)
j-nitrology.com added reviewers: hiren, gnn.
j-nitrology.com added a subscriber: sbruno.
gnn edited edge metadata.
This revision is now accepted and ready to land.Jan 21 2016, 9:23 PM
rrs added a reviewer: rrs.
hiren edited edge metadata.

Cool. I guess I'll do the honors (for slacker wolfe who refuses to commit his own work ;-))

bz requested changes to this revision.Jan 21 2016, 10:48 PM
bz added a reviewer: bz.
bz added a subscriber: bz.

These should be per-VNET changeable really; I see no harm at least why they shouldn't be?

This revision now requires changes to proceed.Jan 21 2016, 10:48 PM
In D5024#106674, @bz wrote:

These should be per-VNET changeable really; I see no harm at least why they shouldn't be?

Thanks for the review, I have a build going with these changes. After a bit of burn in I'll push an update.

So all of the current VNET tooling expects compile time constants, it appears this is what may have been holding back the simple transition of everything in tcp_timer.h based on hz. Talking with @bz, this commit is good to go, and we'll circle back and virtualize this and other timers with a revised method.

bz edited edge metadata.

This is not a firm accept but just saying that if you want to go ahead without the VNET changes and drop me an email after the commit, I'll handle those.

This revision is now accepted and ready to land.Jan 26 2016, 8:53 AM

Virtualizing non-constants is completely out of the scope for this change.

I'll go ahead and commit this.

This revision was automatically updated to reflect the committed changes.