On Wed, May 31, 2006 at 11:23:01AM -0400, John Baldwin wrote:
J> Nah, that was phk's other timekeeping code to see which timeouts take a long
J> time to execute. The THREAD_NO_SLEEPING() stuff was added just before 6.0
J> was released and replaced a couple of "special" mutexes that were held just
J> to provoke WITNESS warnings.
To take a long time to execute one doesn't need to sleep, it can also do
a lot of job.
I know at least two examples of heavy callouts: dummynet and pf. Under
heavy traffic both subsystems process a lot of packets during one callout.
I have patches to move their job to a separate taskqueue. The dummynet
patch needs some testing and the pf patch waits for Max Laier to decide
what to chose: taskqueue API or kthread_create() as newest pf in OpenBSD
Totus tuus, Glebius.