Re: [PATCH -next] memregion: Add arch_flush_memregion() interface

From: Jonathan Cameron
Date: Thu Sep 08 2022 - 09:14:18 EST


On Wed, 7 Sep 2022 18:07:31 -0700
Dan Williams <dan.j.williams@xxxxxxxxx> wrote:

> Andrew Morton wrote:
> > I really dislike the term "flush". Sometimes it means writeback,
> > sometimes it means invalidate. Perhaps at other times it means
> > both.
> >
> > Can we please be very clear in comments and changelogs about exactly
> > what this "flush" does. With bonus points for being more specific in the
> > function naming?
> >
>
> That's a good point, "flush" has been cargo-culted along in Linux's
> cache management APIs to mean write-back-and-invalidate. In this case I
> think this API is purely about invalidate. It just so happens that x86
> has not historically had a global invalidate instruction readily
> available which leads to the overuse of wbinvd.
>
> It would be nice to make clear that this API is purely about
> invalidating any data cached for a physical address impacted by address
> space management event (secure erase / new region provision). Write-back
> is an unnecessary side-effect.
>
> So how about:
>
> s/arch_flush_memregion/cpu_cache_invalidate_memregion/?

Want to indicate it 'might' write back perhaps?
So could be invalidate or clean and invalidate (using arm ARM terms just to add
to the confusion ;)

Feels like there will be potential race conditions where that matters as we might
force stale data to be written back.

Perhaps a comment is enough for that. Anyone have the "famous last words" feeling?

Jonathan