On Fri, Feb 21, 2020 at 04:02:36PM +0100, Jann Horn wrote: > On Fri, Feb 21, 2020 at 3:49 PM Jens Axboe <axboe@xxxxxxxxx> wrote: > > On 2/21/20 3:47 AM, Peter Zijlstra wrote: > > > But I thought to understand that these sched_work things were only > > > queued on tasks that were stuck waiting on POLL (or it's io_uring > > > equivalent). Earlier patches were explicitly running things from > > > io_cqring_wait(), which might have given me this impression. > > > > No, that is correct. > > Really? I was pretty sure that io_uring does not force the calling > thread to block on the io_uring operations to continue; and isn't that > the whole point? > > I think that when Peter says "stuck waiting on POLL", he really means > "blocked in the context of sys_io_uring_enter() and can't go > anywhere"; Exactly. > while I think you interpret it as "has pending POLL work > queued up in the background and may decide to wait for it in > sys_io_uring_enter(), but might also be doing anything else". In which case it can hit schedule() at some random point before it gets to io_uring_cqring_wait().