Re: [PATCH v6 10/16] mm: replace vm_lock and detached flag with a reference count

From: Suren Baghdasaryan
Date: Mon Dec 16 2024 - 16:09:46 EST


On Mon, Dec 16, 2024 at 12:42 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Mon, Dec 16, 2024 at 11:24:13AM -0800, Suren Baghdasaryan wrote:
> > @@ -734,10 +761,12 @@ static inline bool vma_start_read(struct vm_area_struct *vma)
> > * after it has been unlocked.
> > * This pairs with RELEASE semantics in vma_end_write_all().
> > */
> > + if (oldcnt & VMA_STATE_LOCKED ||
> > + unlikely(vma->vm_lock_seq == raw_read_seqcount(&vma->vm_mm->mm_lock_seq))) {
>
> You likely want that unlikely to cover both conditions :-)

True. VMA_STATE_LOCKED is set only while the writer is updating the
vm_lock_seq and that's a narrow window. I'll make that change in the
next revision. Thanks!

>
> > + vma_refcount_put(vma);
> > return false;
> > }
> > +
> > return true;
> > }