On 5/21/24 2:05 PM, David Howells wrote: > Jens Axboe <axboe@xxxxxxxxx> wrote: > >> On 5/21/24 9:54 AM, David Howells wrote: >>> Jens Axboe <axboe@xxxxxxxxx> wrote: >>> >>>> However, I'll note that BDP_ASYNC is horribly named, it should be >>>> BDP_NOWAIT instead. But that's a separate thing, fix looks correct >>>> as-is. >>> >>> I thought IOCB_NOWAIT was related to RWF_NOWAIT, but apparently not from the >>> code. >> >> It is, something submitted with RWF_NOWAIT should have IOCB_NOWAIT set. >> But RWF_NOWAIT isn't the sole user of IOCB_NOWAIT, and no assumptions >> should be made about whether something is sync or async based on whether >> or not RWF_NOWAIT is set. Those aren't related other than _some_ proper >> async IO will have IOCB_NOWAIT set, and others will not. > > Are you sure? RWF_NOWAIT seems to set IOCB_NOIO. As it should, no-wait should imply not blocking on other IO. This is completely orthogonal to whether or not it's async or sync IO. I have a distinct feeling we're talking past each other :-) -- Jens Axboe