]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_map: Add features for Transient Scheduler Attacks mitigation
authorJiri Denemark <jdenemar@redhat.com>
Wed, 5 Nov 2025 14:11:56 +0000 (15:11 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 7 Nov 2025 14:54:55 +0000 (15:54 +0100)
QEMU commits d8ec0baf4a15082cdc4abe1de28face9a26f0dc9 and
c79a35acadee784610aed40134a12738381b4fba

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/cpu_map/sync_qemu_models_i386.py
src/cpu_map/x86_features.xml
tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_10.2.0.x86_64.xml
tests/qemuxmlconfdata/cpu-host-model-fallback-kvm.x86_64-latest.args
tests/qemuxmlconfdata/cpu-host-model-features.x86_64-latest.args
tests/qemuxmlconfdata/cpu-host-model-kvm.x86_64-latest.args
tests/qemuxmlconfdata/cpu-host-model-nofallback-kvm.x86_64-latest.args

index 3ef34572c0b724ef67011cf7fdcb2569b541cf3b..b9698366d4e9fc4ac89dc8f31a409a1e2dad82af 100755 (executable)
@@ -110,6 +110,9 @@ def translate_feature(name):
         "CPUID_8000_0021_EAX_No_NESTED_DATA_BP": "no-nested-data-bp",
         "CPUID_8000_0021_EAX_FS_GS_BASE_NS": "fs-gs-base-ns",
         "CPUID_8000_0021_EAX_PREFETCHI": "prefetchi",
+        "CPUID_8000_0021_EAX_VERW_CLEAR": "verw-clear",
+        "CPUID_8000_0021_ECX_TSA_SQ_NO": "tsa-sq-no",
+        "CPUID_8000_0021_ECX_TSA_L1_NO": "tsa-l1-no",
         "CPUID_ACPI": "acpi",
         "CPUID_APIC": "apic",
         "CPUID_CLFLUSH": "clflush",
index 043f876c3eda106a1d87ef7293e736a99a051a5b..c79cffab19a9e03b5462a4f6a89bd4afb5646fa3 100644 (file)
   <feature name='lfence-always-serializing'>
     <cpuid eax_in='0x80000021' eax='0x00000004'/>
   </feature>
+  <feature name='verw-clear'>
+    <cpuid eax_in='0x80000021' eax='0x00000020'/>
+  </feature>
   <feature name='null-sel-clr-base'>
     <cpuid eax_in='0x80000021' eax='0x00000040'/>
   </feature>
     <cpuid eax_in='0x80000021' eax='0x40000000'/>
   </feature>
 
+  <!-- cpuid level 0x80000021 (ecx) -->
+  <feature name='tsa-sq-no'>
+    <cpuid eax_in='0x80000021' ecx='0x00000002'/>
+  </feature>
+  <feature name='tsa-l1-no'>
+    <cpuid eax_in='0x80000021' ecx='0x00000004'/>
+  </feature>
+
   <!-- cpuid level 0x80000022 (eax) -->
   <feature name='perfmon-v2'>
     <cpuid eax_in='0x80000022' eax='0x00000001'/>
index 8f78fc1d2df1180faadc6bc9707d63aed946146e..4c358dba4cdf6942798f489730c9bf7e8adac51c 100644 (file)
@@ -74,6 +74,8 @@
       <feature policy='require' name='sbpb'/>
       <feature policy='require' name='ibpb-brtype'/>
       <feature policy='require' name='srso-user-kernel-no'/>
+      <feature policy='require' name='tsa-sq-no'/>
+      <feature policy='require' name='tsa-l1-no'/>
       <feature policy='require' name='perfmon-v2'/>
       <feature policy='disable' name='pcid'/>
       <feature policy='disable' name='la57'/>
index d12500658af26602ad53e40ed0e61578a05e19b9..491ae36d6388895b4eb05fa9ae80fc131abed7f6 100644 (file)
@@ -73,6 +73,8 @@
       <feature policy='require' name='sbpb'/>
       <feature policy='require' name='ibpb-brtype'/>
       <feature policy='require' name='srso-user-kernel-no'/>
+      <feature policy='require' name='tsa-sq-no'/>
+      <feature policy='require' name='tsa-l1-no'/>
       <feature policy='require' name='perfmon-v2'/>
       <feature policy='disable' name='pcid'/>
       <feature policy='disable' name='la57'/>
index 642dcd3035cabdb76754e227d47faf76f63f7f31..b25f7ee78778de3fda33847475d4d9834103229f 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
 -machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
 -accel kvm \
--cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,perfmon-v2=on,pcid=off,la57=off \
+-cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,tsa-sq-no=on,tsa-l1-no=on,perfmon-v2=on,pcid=off,la57=off \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
 -overcommit mem-lock=off \
index 8db71ce1fc7d1f93abcfdeb75387198182ea0acd..e9225ea0fa670df30f9e2321c7e7ef1bd4598c82 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
 -machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
 -accel kvm \
--cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,perfmon-v2=on,pcid=off,la57=off,abm=on,ds=on,invtsc=off \
+-cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,tsa-sq-no=on,tsa-l1-no=on,perfmon-v2=on,pcid=off,la57=off,abm=on,ds=on,invtsc=off \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
 -overcommit mem-lock=off \
index a2197d382edda97a04d9e75d92aba96d1fb55570..345babd056365e0be660afb4b08382ab174f1923 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
 -machine q35,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
 -accel kvm \
--cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,perfmon-v2=on,pcid=off,la57=off \
+-cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,tsa-sq-no=on,tsa-l1-no=on,perfmon-v2=on,pcid=off,la57=off \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
 -overcommit mem-lock=off \
index 642dcd3035cabdb76754e227d47faf76f63f7f31..b25f7ee78778de3fda33847475d4d9834103229f 100644 (file)
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \
 -machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
 -accel kvm \
--cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,perfmon-v2=on,pcid=off,la57=off \
+-cpu EPYC-Genoa,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,movdiri=on,movdir64b=on,avx512-vp2intersect=on,spec-ctrl=on,stibp=on,flush-l1d=on,ssbd=on,avx-vnni=on,cmp-legacy=on,overflow-recov=on,succor=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,fs-gs-base-ns=on,prefetchi=on,sbpb=on,ibpb-brtype=on,srso-user-kernel-no=on,tsa-sq-no=on,tsa-l1-no=on,perfmon-v2=on,pcid=off,la57=off \
 -m size=219136k \
 -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \
 -overcommit mem-lock=off \