Re: [PATCH v9 03/12] x86/mm: consolidate full flush threshold decision
From: Rik van Riel
Date: Fri Feb 07 2025 - 15:25:40 EST
On Fri, 2025-02-07 at 15:50 +0100, Brendan Jackman wrote:
> On Thu, 6 Feb 2025 at 05:45, Rik van Riel <riel@xxxxxxxxxxx> wrote:
> > @@ -1276,7 +1282,7 @@ void arch_tlbbatch_flush(struct
> > arch_tlbflush_unmap_batch *batch)
> >
> > int cpu = get_cpu();
> >
> > - info = get_flush_tlb_info(NULL, 0, TLB_FLUSH_ALL, 0, false,
> > + info = get_flush_tlb_info(NULL, 0, TLB_FLUSH_ALL,
> > PAGE_SHIFT, false,
> > TLB_GENERATION_INVALID);
>
> [Why] do we need this change? If it's necessary here, why isn't it
> needed everywhere else that does TLB_FLUSH_ALL too, like
> flush_tlb_mm()?
>
flush_tlb_mm() calls flush_tlb_mm_range(), which
does also use get_flush_tlb_info().
We pass in PAGE_SHIFT here to ensure that the
stride shift is specified correctly to the
INVLPGB instruction later on.
--
All Rights Reversed.