On 3/5/25 00:01, Christoph Hellwig wrote:
On Tue, Mar 04, 2025 at 08:35:52PM +0000, Pavel Begunkov wrote:
Clarification: the mentioned work was reverted or pulled out _upstream_,
it wasn't about back porting.
I don't think we ever tried synchronous reporting of wouldblock errors,
but maybe i'm just too old and confused by now.
It's not something recent. After some digging I think the
one I remember is
https://lore.kernel.org/all/20190717150445.1131-2-axboe@xxxxxxxxx/
Remove by
commit 7b6620d7db566a46f49b4b9deab9fa061fd4b59b
Author: Jens Axboe <axboe@xxxxxxxxx>
Date: Thu Aug 15 11:09:16 2019 -0600
block: remove REQ_NOWAIT_INLINE
lines. And Christoph even of confirmed that the main check in the patch
does what's intended,
I absolutely did not.
Another option is to push all io_uring filesystem / iomap requests
to the slow path (where blocking is possible) and have a meaningful
perf regression for those who still use fs+io_uring direct IO. And
I don't put any dramaticism into it, it's essentially what users
who detect the problem already do, either that but from the user
space or disabling io_uring all together.
If you don't want to do synchronous wouldblock errors that's your
only option. I think it would suck badly, but it's certainly easier
to backport.
Is there some intrinsic difference of iomap from the block file
in block/fops.c? Or is that one broken?
--
Pavel Begunkov