[PATCH v1 11/13] arm64: mm: More flags for __flush_tlb_range()

Ryan Roberts ryan.roberts at arm.com
Mon Jan 12 04:00:16 PST 2026


On 07/01/2026 03:21, Linu Cherian wrote:
> Ryan,
> 
> On Tue, Dec 16, 2025 at 02:45:56PM +0000, Ryan Roberts wrote:
>> Refactor function variants with "_nosync", "_local" and "_nonotify" into
>> a single __always_inline implementation that takes flags and rely on
>> constant folding to select the parts that are actually needed at any
>> given callsite, based on the provided flags.
>>
>> Flags all live in the tlbf_t (TLB flags) type; TLBF_NONE (0) continues
>> to provide the strongest semantics (i.e. evict from walk cache,
>> broadcast, synchronise and notify). Each flag reduces the strength in
>> some way; TLBF_NONOTIFY, TLBF_NOSYNC and TLBF_NOBROADCAST are added to
>> complement the existing TLBF_NOWALKCACHE.
> 
> It would be nice to have some notes added on the below for better clarity 
> * What a walk cache is and why we bother about them ?
> * Why and how should we invalidate the walk caches ?

There is a large comment block already in tlbflush.h which talks about which
operations affect the walk-cache and which don't. Although it never defines the
walk-cache; I'll add something vague there, although I don't want to be too
specific as it's a uarch thing really.

Thanks,
Ryan

> 
> --
> Linu Cherian.




More information about the linux-arm-kernel mailing list