Skip to content

Commit

Permalink
vmm(4): Mask Spectre feature bits on AMD hosts
Browse files Browse the repository at this point in the history
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
  • Loading branch information
cemeyer committed Jan 18, 2019
1 parent 2cb205d commit e87da0f
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions sys/amd64/vmm/x86.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
/*
Expand Down

0 comments on commit e87da0f

Please sign in to comment.