On 6/9/21 5:07 AM, Pavel Begunkov wrote: > There is a complaint against sys_io_uring_enter() blocking if it submits > stdin reads. The problem is in __io_file_supports_async(), which > sees that it's a cdev and allows it to be processed inline. > > Punt char devices using generic rules of io_file_supports_async(), > including checking for presence of *_iter() versions of rw callbacks. > Apparently, it will affect most of cdevs with some exceptions like > null and zero devices. I don't like this, we really should fix the file types, they are broken if they don't honor IOCB_NOWAIT and have ->read_iter() (or the write equiv). For cases where there is no iter variant of the read/write handlers, then yes we should not return true from __io_file_supports_async(). -- Jens Axboe