- User Since
- Apr 14 2021, 8:54 PM (85 w, 5 d)
Thu, Nov 24
Thu, Nov 17
May 19 2021
May 18 2021
Seems clean and simple to me. Nice improvement over the last revision. Let's merge this.
Sure, that approach works fine too, and amounts to the same thing you'd arrive at with SRCU or epoch.
Another approach would be to add SX_NOASSERTS (in addition to SX_NOWITNESS), which would skip those KASSERTs and such.
If you look at _sx_xunlock() you see there is an assert that same thread locks and unlocks.
I don't think we want LinuxKPI stuff in core networking code, right?
I just wrote up a workaround of calling WITNESS_DESTROY and INIT manually like the vfs code which would work but was hackish, and then realized....
May 3 2021
I had previously sent this to freebsd-net, but I'm told phrabricator is a better place for it. Copy and pasting from: https://lists.freebsd.org/pipermail/freebsd-net/2021-April/058173.html :
Apr 20 2021
Apr 14 2021
It looks like the idea here is to increment a reference during ioctl, drop it at the end of an ioctl, and never increment a reference if it decrements to zero. Then, when destroying, you can simply drop the final reference and then sleep-loop until the reference drops to zero before you move on freeing things.