Re: io-uring: KASAN failure, presumably
From: Jens Axboe <axboe@kernel.dk>
Date: 2021-09-12 18:24:37
Also in:
lkml
On 9/12/21 12:21 PM, Nadav Amit wrote:
quoted
On Sep 12, 2021, at 11:15 AM, Jens Axboe [off-list ref] wrote: On 9/11/21 8:34 PM, Nadav Amit wrote:quoted
Hello Jens (& Pavel), I hope you are having a nice weekend. I ran into a KASAN failure in io-uring which I think is not "my fault". The failure does not happen very infrequently, so my analysis is based on reading the code. IIUC the failure, then I do not understand the code well enough, as to say I do not understand how it was supposed to work. I would appreciate your feedback. The failure happens on my own custom kernel (do not try to correlate the line numbers). The gist of the splat is:I think this is specific to your use case, but I also think that we should narrow the scope for this type of REQ_F_REISSUE trigger. It really should only happen on bdev backed regular files, where we cannot easily pass back congestion. For that case, the completion for this is called while we're in ->write_iter() for example, and hence there is no race here. I'll ponder this a bit…I see what you are saying. The assumption is that write_iter() is setting REQ_F_REISSUE, which is not the case in my use-case.
Yes exactly, and hence why I think we need to tighten this check to only be for bdev backed files.
Perhaps EAGAIN is anyhow not the right return value (in my case). I am not sure any other “invalid" use-case exists, but some documentation/assertion(?) can help. I changed the return error-codes and check that the issue is not triggered again. Thanks, as usual, for the quick response.
OK good, thanks for confirming! -- Jens Axboe