[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <59f1b1b6e1ef24b0d514a9885a08400c76b0eeec.camel@surriel.com>
Date: Wed, 03 Sep 2025 10:00:28 -0400
From: Rik van Riel <riel@...riel.com>
To: Dave Hansen <dave.hansen@...el.com>, Giovanni Cabiddu
<giovanni.cabiddu@...el.com>
Cc: x86@...nel.org, linux-kernel@...r.kernel.org, bp@...en8.de,
peterz@...radead.org, dave.hansen@...ux.intel.com,
zhengqi.arch@...edance.com, nadav.amit@...il.com, thomas.lendacky@....com,
kernel-team@...a.com, linux-mm@...ck.org, akpm@...ux-foundation.org,
jackmanb@...gle.com, jannh@...gle.com, mhklinux@...look.com,
andrew.cooper3@...rix.com, Manali.Shukla@....com, mingo@...nel.org,
baolu.lu@...el.com, david.guckian@...el.com, damian.muszynski@...el.com
Subject: Re: [BUG] x86/mm: regression after 4a02ed8e1cc3
On Tue, 2025-09-02 at 08:50 -0700, Dave Hansen wrote:
> On 9/2/25 08:44, Giovanni Cabiddu wrote:
> > diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
> > index 39f80111e6f1..e66c7662c254 100644
> > --- a/arch/x86/mm/tlb.c
> > +++ b/arch/x86/mm/tlb.c
> > @@ -1459,7 +1459,7 @@ void flush_tlb_mm_range(struct mm_struct *mm,
> > unsigned long start,
> >
> > put_flush_tlb_info();
> > put_cpu();
> > - mmu_notifier_arch_invalidate_secondary_tlbs(mm, start,
> > end);
> > + mmu_notifier_arch_invalidate_secondary_tlbs(mm, info-
> > >start, info->end);
> > }
>
> That does look like the right solution.
>
> This is the downside of wrapping everything up in that 'info' struct;
> it's not obvious that the canonical source of the start/end
> information
> moved from those variables into the structure.
>
> Rik, is that your read on it too?
>
In flush_tlb_mm_range(), we only need to flush from
start to end. The same should be true for the mmu notifier.
The only reason info->start and info->end can be modified
is because a global TLB flush can be faster than a ranged
one.
I can't think of any reason why that should affect the
range the mmu notifier needs to flush.
--
All Rights Reversed.
Powered by blists - more mailing lists