Re: [PATCH] x86/cpu/intel: Skip CPA cache flush on CPUs with cache self-snooping

From: Andy Lutomirski
Date: Mon Jul 15 2019 - 10:51:54 EST


On Mon, Jul 15, 2019 at 7:21 AM Uros Bizjak <ubizjak@xxxxxxxxx> wrote:
>
> CPUs which have self-snooping capability can handle conflicting
> memory type across CPUs by snooping its own cache. Commit #fd329f276ecaa
> ("x86/mtrr: Skip cache flushes on CPUs with cache self-snooping")
> avoids cache flushes when MTRR registers are programmed. The Page
> Attribute Table (PAT) is a companion feature to the MTRRs, and according
> to section 11.12.4 of the Intel 64 and IA 32 Architectures Software
> Developer's Manual, if the CPU supports cache self-snooping, it is not
> necessary to flush caches when remapping a page that was previously
> mapped as a different memory type.
>
> Note that commit #1e03bff360010
> ("x86/cpu/intel: Clear cache self-snoop capability in CPUs with known errata")
> cleared cache self-snoop capability for CPUs where conflicting memory types
> lead to unpredictable behavior, machine check errors, or hangs.

It looks like this won't affect the SEV code paths, so I'm not
thinking of anything that this will break. But Dave and Peter are
much, much more familiar with the messes this could cause than I am.

--Andy