Re: [PATCH] mm/mmu_notifier: Remove non_block_start/end() from notifier invocation
Jason Gunthorpe <[email protected]>
| Newsgroups | dev.linux.lists.linux-rt-devel,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On Tue, Aug 11, 2026 at 04:29:55PM +0100, David Woodhouse wrote: > On Tue, 2026-08-11 at 12:24 -0300, Jason Gunthorpe wrote: > > It is documented to be like this, even if it is hard to test.. > > So don't change your documentation :) > > > Even for normal blocking notifiers you should not be using > > synchronize_rcu(). > > This is SRCU not RCU, and the read-side sections are converted from > rwlocks and never had any allocations inside them anyway. To be clear you should not be using any synchronize_[s]rcu() primitive inside the invalidation callbacks. These are well known to have multi-second delays on loaded systems which are a completely inappropriate performance characteristic for these mm callbacks. This statement has nothing to do with deadlock. RCU is always a trade off, you can make the read side run really fast and the write side is ghastly slow. If you can't handle the slow write you shouldn't use RCU techniques. Jason