Enhanced SMT Protection (ESMTP) is an SEV-SNP feature that lets a guest constrain what runs on the sibling thread of the core its vCPUs execute on. Each vCPU's VMSA carries a VCPU_ID and a VCPU_SIBLING_MASK, and hardware admits a VMRUN only when the sibling thread is idle in host mode or is running a vCPU that the mask permits.
This series adds support for to opt-in esmtp support from KVM and engages core scheduling onto the vCPUs to bundle trusted siblings in one group. Usage ----- Requires patched Linux and edk2 builds. Launch an SEV-SNP guest with ESMTP enabled on the sev-snp-guest object: -object sev-snp-guest,id=sev0,cbitpos=51,reduced-phys-bits=1,esmtp=on ESMTP is opt-in because it carries a performance cost as VMRUN stalls until the sibling runs work from a trusted vCPU or is in idle. The guest reports the feature in dmesg among the SNP feature names: # dmesg | grep -i SEV Pratik R. Sampat (2): i386/sev: Introduce Enhanced SMT Protection for SEV-SNP i386/sev: Add core scheduling for ESMTP enabled guests qapi/qom.json | 9 ++++++- target/i386/sev.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++ target/i386/sev.h | 1 + 3 files changed, 71 insertions(+), 1 deletion(-) -- 2.43.0
