[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250128132847.GB505@noisy.programming.kicks-ass.net>
Date: Tue, 28 Jan 2025 14:28:47 +0100
From: Peter Zijlstra <peterz@...radead.org>
To: David Hildenbrand <david@...hat.com>
Cc: kernel test robot <oliver.sang@...el.com>,
Qi Zheng <zhengqi.arch@...edance.com>, oe-lkp@...ts.linux.dev,
lkp@...el.com, linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Andy Lutomirski <luto@...nel.org>,
Catalin Marinas <catalin.marinas@....com>,
David Rientjes <rientjes@...gle.com>,
Hugh Dickins <hughd@...gle.com>, Jann Horn <jannh@...gle.com>,
Lorenzo Stoakes <lorenzo.stoakes@...cle.com>,
Matthew Wilcox <willy@...radead.org>, Mel Gorman <mgorman@...e.de>,
Muchun Song <muchun.song@...ux.dev>, Peter Xu <peterx@...hat.com>,
Will Deacon <will@...nel.org>, Zach O'Keefe <zokeefe@...gle.com>,
Dan Carpenter <dan.carpenter@...aro.org>,
Rik van Riel <riel@...riel.com>
Subject: Re: [linus:master] [x86] 4817f70c25: stress-ng.mmapaddr.ops_per_sec
63.0% regression
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().
Powered by blists - more mailing lists