Re: [linus:master] [x86] 4817f70c25: stress-ng.mmapaddr.ops_per_sec 63.0% regression

From: Peter Zijlstra
Date: Tue Jan 28 2025 - 08:29:12 EST


On Tue, Jan 28, 2025 at 12:39:51PM +0100, David Hildenbrand wrote:
> On 28.01.25 12:31, Peter Zijlstra wrote:

> > > I recall a recent series to select MMU_GATHER_RCU_TABLE_FREE on x86
> > > unconditionally (@Peter, @Rik).
> >
> > Those changes should not have made it to Linus yet.
> >
> > /me updates git and checks...
> >
> > nope, nothing changed there ... yet
>
> Sorry, I wasn't quite clear. CONFIG_PT_RECLAIM made it upstream, which has
> "select MMU_GATHER_RCU_TABLE_FREE" in kconfig.
>
> So I'm wondering if the degradation we see in this report is due to
> MMU_GATHER_RCU_TABLE_FREE being selected by CONFIG_PT_RECLAIM, and we'd get
> the same result (degradation) when unconditionally enabling
> MMU_GATHER_RCU_TABLE_FREE.

Ah, yes, put a RHEL based config (as is the case here) should already
have it selected due to PARAVIRT.

But the thing is, that same paravirt crud will then map
paravirt_tlb_remove_table() to tlb_remove_page() on native, effectively
disabling the whole thing again.

It's only for actual virt stuff, that tlb_remove_table() is used.

These patches from Rik take all this stuff out and always use
tlb_remove_table().