Re: [PATCH 7.2 v10 0/2] skip redundant sync IPIs when TLB flush sent them

From: Andrew Morton

Date: Fri Apr 24 2026 - 09:30:40 EST


On Fri, 24 Apr 2026 14:25:26 +0800 Lance Yang <lance.yang@xxxxxxxxx> wrote:

> When page table operations require synchronization with software/lockless
> walkers, they call tlb_remove_table_sync_{one,rcu}() after flushing the
> TLB (tlb->freed_tables or tlb->unshared_tables).
>
> On architectures where the TLB flush already sends IPIs to all target CPUs,
> the subsequent sync IPI broadcast is redundant. This is not only costly on
> large systems where it disrupts all CPUs even for single-process page table
> operations, but has also been reported to hurt RT workloads[1].
>
> This series introduces tlb_table_flush_implies_ipi_broadcast() to check if
> the prior TLB flush already provided the necessary synchronization. When
> true, the sync calls can early-return.
>
> A few cases rely on this synchronization:
>
> 1) hugetlb PMD unshare[2]: The problem is not the freeing but the reuse
> of the PMD table for other purposes in the last remaining user after
> unsharing.
>
> 2) khugepaged collapse[3]: Ensure no concurrent GUP-fast before collapsing
> and (possibly) freeing the page table / re-depositing it.

Sashiko questions:
https://sashiko.dev/#/patchset/20260424062528.71951-1-lance.yang@xxxxxxxxx

(I never know if my Sashiko emails are welcome/useful. Maybe Sashiko
said the same stuff about v9 and it's all wrong. But better safe than
sorry!)