On Tue, Sep 6, 2022 at 12:39 PM Peter Xu <peterx@xxxxxxxxxx> wrote: > > On Thu, Sep 01, 2022 at 10:35:07AM -0700, Suren Baghdasaryan wrote: > > Due to the possibility of do_swap_page dropping mmap_lock, abort fault > > handling under VMA lock and retry holding mmap_lock. This can be handled > > more gracefully in the future. > > > > Signed-off-by: Suren Baghdasaryan <surenb@xxxxxxxxxx> > > --- > > mm/memory.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/mm/memory.c b/mm/memory.c > > index 9ac9944e8c62..29d2f49f922a 100644 > > --- a/mm/memory.c > > +++ b/mm/memory.c > > @@ -3738,6 +3738,11 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > > vm_fault_t ret = 0; > > void *shadow = NULL; > > > > + if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > > + ret = VM_FAULT_RETRY; > > + goto out; > > + } > > + > > May want to fail early similarly for handle_userfault() too for similar > reason. Thanks, I wasn't aware of a similar issue there. Will have a closer look. Thanks! > > -- > Peter Xu >