Closed chucklever closed 7 months ago
[Chuck Lever 2022-01-26 22:17:41 UTC] I've decided to proceed with removing the partially-completed workqueue-based thread scheduler. Neil Brown has some thoughts about dynamic thread management in a way that would permit the thread count to grow and shrink based on workload.
This was bugzilla.linux-nfs.org 365
[Chuck Lever 2021-08-09 14:52:53 UTC] Years ago Jeff Layton produced a series of patches that added a workqueue-based scheduling mechanism for nfsd threads. Benchmarking showed it had a few performance deficits but was otherwise fit for merge.
Unfortunately Jeff had moved off of nfsd work after some of the series was merged, but this work was never fully completed. Further discussion with workqueue experts revealed that the corner cases were expected due to the work conserving policies implemented in the workqueue scheduler.
In the meantime, recent CPU side-channel attacks have made virtual function calls much more expensive. The WQ nfsd thread scheduler work introduced a few of those that are unneeded if the WQ scheduler will never be completed.
Either we should complete the WQ nfsd scheduling mechanism, or remove the incomplete pieces of it.