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
This commit is contained in:
parent
61ef814f56
commit
d0c7cde53e
@ -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);
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user