Re: [PATCH v1 37/40] x86/cacheinfo: Extract out cache self-snoop checks

From: Andrew Cooper
Date: Tue Mar 04 2025 - 05:45:00 EST


On 04/03/2025 8:51 am, Ahmed S. Darwish wrote:
> The logic of not doing a cache flush if the CPU declares cache self
> snooping support is repeated across the x86/cacheinfo code. Extract it
> into its own function.
>
> Signed-off-by: Ahmed S. Darwish <darwi@xxxxxxxxxxxxx>

I know you're just refactoring code, but the SDM has basically reverted
this statement about it being safe to skip WBINVD based on SELFSNOOP.

It turns out not to be safe in cases where the underlying physical
memory changes from cacheable to unchangeable.  By skipping the WBINVD
as part of changing the memory type, you end up with spurious writebacks
at a later point when the memory is expected to be UC.  Apparently this
is a problem for CLX devices, hence the change in the SDM.

~Andrew