On Thu, May 13, 2021 at 12:04:57AM -0500, Scott Cheloha wrote: > The funky locking dance in softclock() and softclock_thread() is > needed to keep from violating the locking hierarchy. The > timeout_mutex is above the kernel lock, so we need to leave the > timeout_mutex, then drop the kernel lock, and then reenter the > timeout_mutex to start running TIMEOUT_MPSAFE timeouts.
Are you sure that dropping the kernel lock in softclock(), in non-process context, is a good idea? That makes assumptions how the layers above work. At the minimum, I think the soft interrupt code has to be changed so that it is possible to register MP-safe handlers.