- add tracker argument to preemptible epochs
- make epoch read path inline in kernel
- change in_epoch to take an epoch as argument
Details
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 17756
Event Timeline
sys/conf/kern.post.mk | ||
---|---|---|
188 | Will we be able to use epochs in modules? |
sys/conf/kern.post.mk | ||
---|---|---|
188 | Yes. See the _KBI functions in epoch.h. Much like locks and atomics there's no provision for in-tree modules to use the inline variants. I hope to address that at some point. |
sys/conf/kern.post.mk | ||
---|---|---|
188 | Modules wanting inline atomics, locks, and epoch sections can define KLD_BASE. So far I've only done it for rack and fastpath but it may make sense for ZFS and the 100G drivers. |
- eliminate ti_locked branchfest in do_segment, rack, and fastpath
- replace all INP_INFO_{RLOCK, RUNLOCK} with explicit epoch_tracker usage
- restore TIMEWAIT checks at close
- don't drop reference in lock del as we're no longer adding a ref prior
- rebase
- cleanups
We've tested this in synthetic stress testing and production load at LLNW. This is a wide reaching change and has higher chance for fallout, but I think getting additional public testing in HEAD will be the most prudent use of time to stabilize the KPI and implementation for 12.0-RELEASE.
@jtl for NF there are some minor mechanical changes that will be needed for your out of tree stacks.