All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: Jann Horn <jannh@google.com>
Cc: Suren Baghdasaryan <surenb@google.com>,
	akpm@linux-foundation.org,  dave.hansen@linux.intel.com,
	Liam.Howlett@oracle.com, david@redhat.com, willy@infradead.org,
	 shakeel.butt@linux.dev, vbabka@kernel.org, aliceryhl@google.com,
	arve@android.com,  cmllamas@google.com, christian@brauner.io,
	tkjos@android.com, dsahern@kernel.org,  davem@davemloft.net,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	 linux-mm@kvack.org, netdev@vger.kernel.org
Subject: Re: [PATCH v3 1/5] mm: Make per-VMA locks available universally
Date: Tue, 4 Aug 2026 09:56:34 +0100	[thread overview]
Message-ID: <anGnOHgOd1q1jYXK@lucifer> (raw)
In-Reply-To: <CAG48ez1=_O0g7rArdpoVwg84jOJuELEAXu5sw=TO_CWBsK=T7w@mail.gmail.com>

On Mon, Aug 03, 2026 at 11:12:01PM +0200, Jann Horn wrote:
> On Mon, Aug 3, 2026 at 6:08 PM Lorenzo Stoakes (ARM) <ljs@kernel.org> wrote:
> > On Mon, Aug 03, 2026 at 08:24:44AM -0700, Suren Baghdasaryan wrote:
> > > On Sun, Aug 2, 2026 at 2:55 PM Suren Baghdasaryan <surenb@google.com> wrote:
> > > > -#endif /* CONFIG_PER_VMA_LOCK */
> > >
> > > Now that I'm looking closer into this, I think we would break NOMMU
> > > case because nommu.c does not take VMA write locks at all. So,
> > > lock_vma_under_rcu() for example would always succeed.
> >
> > I don't think anything's broken actually.
> >
> > Per-VMA locks was gated on CONFIG_MMU so nothing there assumes per-VMA flags,
> > but now you have stuff that happens that didn't before but:
> >
> > * vm_area_free() -> vma_assert_detached() - fine - it's always detached in nommu.
>
> I don't think that's true, AFAICS vma_mark_attached() is called from
> vma_iter_store_new() which is called from the nommu version of
> do_mmap(). But I think you're right that one blunt workaround for this
> would be to add a hack that prevents ever marking VMAs in nommu as
> attached...

Thanks Jann, though also ugh god at that :)

(Really the ideal solution for nommu would be a 'virtual' MMU with noops for
everything IMO.)

Anyway, I think we could fix this with a:

static inline void vma_mark_attached(struct vm_area_struct *vma)
{
+	if (!IS_ENBLED(CONFIG_MMU))
+		return;

	vma_assert_write_locked(vma);
	vma_assert_detached(vma);
	refcount_set_release(&vma->vm_refcnt, 1);
}

Here?

>
> > * vm_area_dup() -> vma_lock_init() - no asserts, just sets refcount to 0 (correct).

--
Cheers, Lorenzo

  reply	other threads:[~2026-08-04  8:56 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-02 21:54 [PATCH v3 0/5] mm: Unconditional per-VMA locks and cleanups Suren Baghdasaryan
2026-08-02 21:54 ` [PATCH v3 1/5] mm: Make per-VMA locks available universally Suren Baghdasaryan
2026-08-03 10:49   ` Lorenzo Stoakes (ARM)
2026-08-03 14:01   ` Vlastimil Babka (SUSE)
2026-08-03 17:45     ` Suren Baghdasaryan
2026-08-03 15:24   ` Suren Baghdasaryan
2026-08-03 16:08     ` Lorenzo Stoakes (ARM)
2026-08-03 17:41       ` Suren Baghdasaryan
2026-08-03 17:45         ` Suren Baghdasaryan
2026-08-03 21:12       ` Jann Horn
2026-08-04  8:56         ` Lorenzo Stoakes (ARM) [this message]
2026-08-04 14:59           ` Suren Baghdasaryan
2026-08-03 19:33   ` Jann Horn
2026-08-03 19:43     ` Suren Baghdasaryan
2026-08-02 21:54 ` [PATCH v3 2/5] binder: Make shrinker rely solely on per-VMA lock Suren Baghdasaryan
2026-08-03  9:48   ` Alice Ryhl
2026-08-03 10:50     ` Lorenzo Stoakes (ARM)
2026-08-03 11:11       ` Lorenzo Stoakes (ARM)
2026-08-03 11:33         ` Lorenzo Stoakes (ARM)
2026-08-03 18:02       ` Suren Baghdasaryan
2026-08-04  9:15         ` Lorenzo Stoakes (ARM)
2026-08-03 11:10   ` Lorenzo Stoakes (ARM)
2026-08-03 18:31     ` Suren Baghdasaryan
2026-08-04  9:08       ` Lorenzo Stoakes (ARM)
2026-08-04  9:04     ` Alice Ryhl
2026-08-04  9:11       ` Lorenzo Stoakes (ARM)
2026-08-04 14:54         ` Suren Baghdasaryan
2026-08-02 21:54 ` [PATCH v3 3/5] mm: Add RCU-based VMA lookup helper that waits for writers Suren Baghdasaryan
2026-08-03 11:28   ` Lorenzo Stoakes (ARM)
2026-08-03 19:01     ` Suren Baghdasaryan
2026-08-04  8:47       ` Lorenzo Stoakes (ARM)
2026-08-04 15:00         ` Suren Baghdasaryan
2026-08-03 14:55   ` Vlastimil Babka (SUSE)
2026-08-03 15:00     ` Lorenzo Stoakes (ARM)
2026-08-03 16:24       ` Vlastimil Babka (SUSE)
2026-08-03 16:43         ` Lorenzo Stoakes (ARM)
2026-08-03 19:13           ` Suren Baghdasaryan
2026-08-04  7:59             ` Vlastimil Babka (SUSE)
2026-08-04  8:44               ` Lorenzo Stoakes (ARM)
2026-08-02 21:54 ` [PATCH v3 4/5] binder: Remove mmap_lock fallback Suren Baghdasaryan
2026-08-03 10:34   ` Alice Ryhl
2026-08-03 19:14     ` Suren Baghdasaryan
2026-08-03 11:33   ` Lorenzo Stoakes (ARM)
2026-08-03 19:16     ` Suren Baghdasaryan
2026-08-02 21:54 ` [PATCH v3 5/5] tcp: Remove mmap_lock fallback path Suren Baghdasaryan
2026-08-03  2:11 ` [PATCH v3 0/5] mm: Unconditional per-VMA locks and cleanups Barry Song
2026-08-03 17:51   ` Suren Baghdasaryan
2026-08-04  9:27     ` Lorenzo Stoakes (ARM)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=anGnOHgOd1q1jYXK@lucifer \
    --to=ljs@kernel.org \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=aliceryhl@google.com \
    --cc=arve@android.com \
    --cc=christian@brauner.io \
    --cc=cmllamas@google.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=david@redhat.com \
    --cc=dsahern@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jannh@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=netdev@vger.kernel.org \
    --cc=shakeel.butt@linux.dev \
    --cc=surenb@google.com \
    --cc=tkjos@android.com \
    --cc=vbabka@kernel.org \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.