Page MenuHomeFreeBSD

Fix synchronization of lbgroup access.
ClosedPublic

Authored by markj on Sep 4 2018, 9:36 PM.
Tags
None
Referenced Files
F136935991: D17031.id.diff
Thu, Nov 20, 6:04 PM
F136935851: D17031.id47890.diff
Thu, Nov 20, 6:03 PM
F136935791: D17031.id47667.diff
Thu, Nov 20, 6:02 PM
F136934237: D17031.diff
Thu, Nov 20, 5:52 PM
Unknown Object (File)
Wed, Nov 12, 8:24 AM
Unknown Object (File)
Sat, Nov 1, 10:58 AM
Unknown Object (File)
Sat, Oct 25, 5:31 PM
Unknown Object (File)
Oct 15 2025, 2:09 AM
Subscribers

Details

Summary

lbgroup hash table lookups are protected by epoch sections, but the hash
chains are regular LISTs instead of CK_LISTs. We also were not
deferring frees of inpcblbgroups.

Test Plan

Regression test in D17110.

gallatin tested the patch on a box at Netflix.

Diff Detail

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

Event Timeline

This revision is now accepted and ready to land.Sep 6 2018, 3:27 PM

Yeah, CK work was committed soon after so_reuseport_lb was merged so this was missed. Thanks for fixing!

FWIW, as I mentioned in private email, the testing went fine. I verified that there were no apparent mem leaks, and that in_pcblbgroup_free_deferred() was called when I bounced nginx several times on a heavily loaded (> 90Gb/s) box.

FWIW, as I mentioned in private email, the testing went fine. I verified that there were no apparent mem leaks, and that in_pcblbgroup_free_deferred() was called when I bounced nginx several times on a heavily loaded (> 90Gb/s) box.

Indeed, thanks. I also wrote some regression tests; see D17110. I submitted this diff to re@ already.

This revision was automatically updated to reflect the committed changes.