From: Dave Hansen <dave.hansen@intel.com>
To: Xi Ruoyao <xry111@xry111.site>,
Dave Hansen <dave.hansen@linux.intel.com>,
Michael Kelley <mhklinux@outlook.com>,
Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
Cc: Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org, linux-kernel@vger.kernel.org,
Sean Christopherson <seanjc@google.com>,
Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH v10 2/2] x86/mm: Don't disable PCID if the kernel is running on a hypervisor
Date: Thu, 26 Sep 2024 10:37:05 -0700 [thread overview]
Message-ID: <1a0fd968-15a0-401f-a683-e8989c2df669@intel.com> (raw)
In-Reply-To: <20240522020625.69418-2-xry111@xry111.site>
On 5/21/24 19:06, Xi Ruoyao wrote:
> - invlpg_miss_match = x86_match_cpu(invlpg_miss_ids);
> + /* Only bare-metal is affected. PCIDs in guests are OK. */
> + if (!boot_cpu_has(X86_FEATURE_HYPERVISOR))
> + invlpg_miss_match = x86_match_cpu(invlpg_miss_ids);
So, surely, the common case is hypervisors that set
X86_FEATURE_HYPERVISOR are running the guest under VMX. But it doesn't
cover everything, either.
The guest could be running under regular old QEMU without KVM. Or it
could be one of the hypervisors that has a sense of humor and runs guest
ring0 in hardware ring3. But those setups aren't vulnerable in the
first place because they don't actually execute INVLPG directly on the
hardware.
That said, if this check goes wrong (like seeing a
X86_FEATURE_HYPERVISOR==0 under VMX) the worst that can happen is that
PCIDs get disabled without a good reason.
So I think the patch is correct, but I don't like the idea that
X86_FEATURE_HYPERVISOR has any kind of strict connection to VMX.
I'd rather just say:
Hypervisors lie about CPUID making model and microcode version
checks worthless. Just assume all guests are immune either
because they can't use INVLPG directly or are running under VMX
and are unaffected.
next prev parent reply other threads:[~2024-09-26 17:37 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-22 2:06 [PATCH v10 1/2] x86/mm: Don't disable PCID if "incomplete Global INVLPG flushes" is fixed by microcode Xi Ruoyao
2024-05-22 2:06 ` [PATCH v10 2/2] x86/mm: Don't disable PCID if the kernel is running on a hypervisor Xi Ruoyao
2024-09-26 17:37 ` Dave Hansen [this message]
2024-06-26 13:10 ` [PATCH v10 1/2] x86/mm: Don't disable PCID if "incomplete Global INVLPG flushes" is fixed by microcode Xi Ruoyao
2024-06-26 16:50 ` Dave Hansen
2024-06-26 17:15 ` Pawan Gupta
2024-07-17 3:26 ` Xi Ruoyao
2024-09-17 8:24 ` Xi Ruoyao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1a0fd968-15a0-401f-a683-e8989c2df669@intel.com \
--to=dave.hansen@intel.com \
--cc=andrew.cooper3@citrix.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mhklinux@outlook.com \
--cc=mingo@redhat.com \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=peterz@infradead.org \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xry111@xry111.site \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox