svn commit: r343166 - head/sys/amd64/vmm
Conrad Meyer
cem at FreeBSD.org
Fri Jan 18 23:54:52 UTC 2019
Author: cem
Date: Fri Jan 18 23:54:51 2019
New Revision: 343166
URL: https://svnweb.freebsd.org/changeset/base/343166
Log:
vmm(4): Mask Spectre feature bits on AMD hosts
For parity with Intel hosts, which already mask out the CPUID feature
bits that indicate the presence of the SPEC_CTRL MSR, do the same on
AMD.
Eventually we may want to have a better support story for guests, but
for now, limit the damage of incorrectly indicating an MSR we do not yet
support.
Eventually, we may want a generic CPUID override system for
administrators, or for minimum supported feature set in heterogenous
environments with failover. That is a much larger scope effort than
this bug fix.
PR: 235010
Reported by: Rys Sommefeldt <rys AT sommefeldt.com>
Sponsored by: Dell EMC Isilon
Modified:
head/sys/amd64/vmm/x86.c
Modified: head/sys/amd64/vmm/x86.c
==============================================================================
--- head/sys/amd64/vmm/x86.c Fri Jan 18 23:26:31 2019 (r343165)
+++ head/sys/amd64/vmm/x86.c Fri Jan 18 23:54:51 2019 (r343166)
@@ -136,6 +136,14 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id,
case CPUID_8000_0008:
cpuid_count(*eax, *ecx, regs);
if (vmm_is_amd()) {
+ /*
+ * As on Intel (0000_0007:0, EDX), mask out
+ * unsupported or unsafe AMD extended features
+ * (8000_0008 EBX).
+ */
+ regs[1] &= (AMDFEID_CLZERO | AMDFEID_IRPERF |
+ AMDFEID_XSAVEERPTR);
+
vm_get_topology(vm, &sockets, &cores, &threads,
&maxcpus);
/*
More information about the svn-src-all
mailing list