x86/cpuid: Advertise SERIALIZE by default to guests
authorAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 14 Dec 2021 20:04:17 +0000 (20:04 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 16 Dec 2021 20:27:13 +0000 (20:27 +0000)
commit4feacc95265a3d786753ed1532c77eb382630f78
tree1de23bec8f7177056f700ac09565c676a6e6ada6
parent5bd2b82df28cb7390f5ffb00fac635d0b9e36674
x86/cpuid: Advertise SERIALIZE by default to guests

I've played with SERIALIZE, TSXLDTRK, MOVDIRI and MOVDIR64 on real hardware,
and they all seem fine, including emulation support.

SERIALIZE exists specifically to have a userspace usable serialising operation
without other side effects.  (The only other two choices are CPUID which is a
VMExit under virt and clobbers 4 registers, and IRET-to-self which very slow
and consumes content from the stack.)

TSXLDTRK is a niche TSX feature, and TSX itself is niche outside of demos of
speculative sidechannels.  Leave the feature opt-in until a usecase is found,
in an effort to preempt the multiple person years of effort it has taken to
mop up TSX issues impacting every processor line.

MOVDIRI and MOVDIR64 are harder to judge.  They're architectural building
blocks towards ENQCMD{,S} without obvious usecases on their own.  They're of
no use to domains without PCI devices, so leave them opt-in for now.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/include/public/arch-x86/cpufeatureset.h