On Fri, Jun 09, 2023 at 03:34:34PM -0700, Suren Baghdasaryan wrote: > On Fri, Jun 9, 2023 at 1:45 PM Peter Xu <peterx@xxxxxxxxxx> wrote: > > > > On Fri, Jun 09, 2023 at 09:35:49PM +0100, Matthew Wilcox wrote: > > > On Fri, Jun 09, 2023 at 04:25:42PM -0400, Peter Xu wrote: > > > > > bool __folio_lock_or_retry(struct folio *folio, struct mm_struct *mm, > > > > > unsigned int flags) > > > > > { > > > > > + /* Can't do this if not holding mmap_lock */ > > > > > + if (flags & FAULT_FLAG_VMA_LOCK) > > > > > + return false; > > > > > > > > If here what we need is the page lock, can we just conditionally release > > > > either mmap lock or vma lock depending on FAULT_FLAG_VMA_LOCK? > > > > > > See patch 5 ... > > > > Just reaching.. :) > > > > Why not in one shot, then? > > I like small incremental changes, but I can squash them if that helps > in having a complete picture. Yes that'll be appreciated. IMHO keeping changing semantics of FAULT_FLAG_VMA_LOCK for the folio lock function in the same small series is confusing. -- Peter Xu