On Sat, Aug 1, 2020 at 8:30 AM Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote: > > Waiting for response at https://lkml.kernel.org/r/45a9b2c8-d0b7-8f00-5b30-0cfe3e028b28@xxxxxxxxxxxxxxxxxxx . I think handle_userfault() should have a (shortish) timeout, and just return VM_FAULT_RETRY. The code is overly complex anyway, because it predates the "just return RETRY". And because we can't wait forever when the source of the fault is a kernel exception, I think we should add some extra logic to just say "if this is a retry, we've already done this once, just return an error". This is a TEST PATCH ONLY. I think we'll actually have to do something like this, but I think the final version might need to allow a couple of retries, rather than just give up after just one second. But for testing your case, this patch might be enough to at least show that "yeah, this kind of approach works". Andrea? Comments? As mentioned, this is probably much too aggressive, but I do think we need to limit the time that the kernel will wait for page faults. Because userfaultfd has become a huge source of security holes as a way to time kernel faults or delay them indefinitely. Linus
Attachment:
patch
Description: Binary data