From: Sean Christopherson <seanjc@google.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: "Jason Gunthorpe" <jgg@ziepe.ca>,
"Michal Hocko" <mhocko@suse.com>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Andrew Morton" <akpm@linux-foundation.org>,
"David Hildenbrand" <david@kernel.org>,
"Lorenzo Stoakes" <ljs@kernel.org>,
"Liam R. Howlett" <liam@infradead.org>,
"Vlastimil Babka" <vbabka@kernel.org>,
"Mike Rapoport" <rppt@kernel.org>,
"Suren Baghdasaryan" <surenb@google.com>,
"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
"Clark Williams" <clrkwllms@kernel.org>,
"Simona Vetter" <simona.vetter@ffwll.ch>,
"Jérôme Glisse" <jglisse@redhat.com>,
"Christian König" <christian.koenig@amd.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
linux-mm@kvack.org, kvm@vger.kernel.org,
linux-rt-devel@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm/mmu_notifier: Remove non_block_start/end() from notifier invocation
Date: Wed, 12 Aug 2026 09:20:51 -0700 [thread overview]
Message-ID: <anydY25Cl78l1HfU@google.com> (raw)
In-Reply-To: <d0692500893f303906fba1d7d596eb59a07a806a.camel@infradead.org>
On Wed, Aug 12, 2026, David Woodhouse wrote:
> On Wed, 2026-08-12 at 16:03 +0100, David Woodhouse wrote:
> > On Wed, 2026-08-12 at 15:34 +0100, David Woodhouse wrote:
> > > On Wed, 2026-08-12 at 15:05 +0100, David Woodhouse wrote:
> > > > I'll rephrase that for my own understanding:
> > > >
> > > > *If* we go all the way to building a whole SRCU flavour for this *and*
> > > > implementing a spin-only variant of srcu_synchronize() which is
> > > > tailored to the atomic-reader use case, *then* we don't need to remove
> > > > the non_block_{start,end} guards around the MMU notifiers, which are
> > > > basically never being called anyway and don't actually seem to protect
> > > > against any real bugs.
> > > >
> > > > Yes?
> > >
> > > FWIW it looks something like this. I'll throw it into my torture and
> > > latency tests, and we can see what Paul thinks of it. I'm still utterly
> > > unconvinced it's needed, but I concede it has its good points.
> >
> > This slightly refactored version is the one that's actually going into
> > my torture tests...
>
> Well, it survived first contact, and it's doing the soak testing now.
>
> The average is basically no better than the try_synchronize_srcu()
> case, unsurprisingly — as *both* of them just observe that there are no
> readers and proceed immediately, in at least 99% of cases.
>
> Like the existing rwlock case, it still manages double-digit p100
> latency even when though *doesn't* actually sleep.
>
> I don't *hate* it, but I do question the benefit of it over try-first.
FWIW, the max latency and >8ms numbers are very appealing to me, as my concerns
with using SRCU are all about the tail latencies.
But I'm obviously not the one who'd be saddled with maintaining the code, so I'm
more than a little biased towards choosing the more complex version.
> Again, I'll defer to Paul, but personally I'd want to see a more
> compelling use case for it.
>
> ┌───────────────┬─────────────────────┬───────────────────┬─────────────────────┐
> │ │ expedited │ try-first │ atomic │
> ├───────────────┼─────────────────────┼───────────────────┼─────────────────────┤
> │ median drain │ 32-128µs │ 4-16µs │ 4-16µs │
> ├───────────────┼─────────────────────┼───────────────────┼─────────────────────┤
> │ avg │ 118µs │ 13.8µs │ 12.3µs │
> ├───────────────┼─────────────────────┼───────────────────┼─────────────────────┤
> │ >1ms │ ~950ppm │ ~990ppm │ 838ppm │
> ├───────────────┼─────────────────────┼───────────────────┼─────────────────────┤
> │ >8ms │ 42ppm │ 4.4ppm │ 0.10ppm │
> ├───────────────┼─────────────────────┼───────────────────┼─────────────────────┤
> │ max │ 33.6ms │ 17.6ms │ 10.25ms │
> ├───────────────┼─────────────────────┼───────────────────┼─────────────────────┤
> │ fallback rate │ — │ 1.2% │ 0% │
> ├───────────────┼─────────────────────┼───────────────────┼─────────────────────┤
> │ sample │ 32.6M drains, 10min │ 41M drains, 10min │ 40.5M drains, 10min │
> └───────────────┴─────────────────────┴───────────────────┴─────────────────────┘
next prev parent reply other threads:[~2026-08-12 16:20 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-11 8:58 [PATCH] mm/mmu_notifier: Remove non_block_start/end() from notifier invocation David Woodhouse
2026-08-11 13:55 ` Jason Gunthorpe
2026-08-11 14:21 ` David Woodhouse
2026-08-11 14:27 ` Jason Gunthorpe
2026-08-11 14:33 ` David Woodhouse
2026-08-11 14:42 ` Steven Rostedt
2026-08-11 15:24 ` David Woodhouse
2026-08-11 15:30 ` Jason Gunthorpe
2026-08-12 8:14 ` Michal Hocko
2026-08-12 8:21 ` David Woodhouse
2026-08-12 12:27 ` Jason Gunthorpe
2026-08-12 13:46 ` David Woodhouse
2026-08-12 13:49 ` Jason Gunthorpe
2026-08-12 14:05 ` David Woodhouse
2026-08-12 14:26 ` Jason Gunthorpe
2026-08-12 14:38 ` David Woodhouse
2026-08-12 14:34 ` David Woodhouse
2026-08-12 15:03 ` David Woodhouse
2026-08-12 15:49 ` David Woodhouse
2026-08-12 16:20 ` Sean Christopherson [this message]
2026-08-12 17:17 ` David Woodhouse
2026-08-12 16:04 ` Paolo Bonzini
2026-08-12 16:07 ` Jason Gunthorpe
2026-08-12 17:49 ` David Woodhouse
2026-08-12 8:13 ` Michal Hocko
2026-08-11 15:29 ` Jason Gunthorpe
2026-08-11 15:15 ` David Woodhouse
2026-08-11 15:24 ` Jason Gunthorpe
2026-08-11 15:29 ` David Woodhouse
2026-08-11 16:24 ` Jason Gunthorpe
2026-08-11 17:22 ` David Woodhouse
2026-08-11 17:26 ` Jason Gunthorpe
2026-08-11 17:59 ` David Woodhouse
2026-08-11 18:19 ` Jason Gunthorpe
2026-08-11 20:06 ` Sean Christopherson
2026-08-11 20:21 ` Paolo Bonzini
2026-08-11 21:14 ` David Woodhouse
2026-08-11 22:58 ` Sean Christopherson
2026-08-11 23:50 ` David Woodhouse
2026-08-12 10:25 ` David Woodhouse
2026-08-12 16:07 ` Sean Christopherson
2026-08-11 20:29 ` David Woodhouse
2026-08-11 15:12 ` David Hildenbrand (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=anydY25Cl78l1HfU@google.com \
--to=seanjc@google.com \
--cc=akpm@linux-foundation.org \
--cc=bigeasy@linutronix.de \
--cc=christian.koenig@amd.com \
--cc=clrkwllms@kernel.org \
--cc=david@kernel.org \
--cc=dwmw2@infradead.org \
--cc=jgg@ziepe.ca \
--cc=jglisse@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=liam@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-rt-devel@lists.linux.dev \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=paulmck@kernel.org \
--cc=pbonzini@redhat.com \
--cc=rostedt@goodmis.org \
--cc=rppt@kernel.org \
--cc=simona.vetter@ffwll.ch \
--cc=surenb@google.com \
--cc=vbabka@kernel.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.