On Wed, Dec 15, 2021 at 09:56:06AM -0800, Peter Oskolkov wrote: > On Wed, Dec 15, 2021 at 2:06 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > /* > > + * Enqueue tsk to it's server's runnable list and wake the server for pickup if > > + * so desired. Notable LAZY workers will not wake the server and rely on the > > + * server to do pickup whenever it naturally runs next. > > No, I never suggested we needed per-server runnable queues: in all my > patchsets I had a single list of idle (runnable) workers. This is not about the idle servers.. So without the LAZY thing on, a previously blocked task hitting sys_exit will enqueue itself on the runnable list and wake the server for pickup. IIRC you didn't like the server waking while it was still running another task, but instead preferred to have it pick up the newly enqueued task when next it ran. LAZY enables that.. *however* it does need to wake the server when it is idle, otherwise they'll all sit there waiting for one another.