# Disco verification:

ubuntu@disco:~$ sudo /usr/bin/qemu-system-x86_64 -name guest="guest"
-machine accel=kvm -cpu host,+arch-capabilities,+ssbd,+md-clear,+rdctl-
no,+ibrs-all,+skip-l1dfl-vmentry,+mds-no -m 2048 -realtime mlock=off
-smp 1,sockets=1,cores=1,threads=1 -uuid 7e55c71a-558f-
412c-8445-db0e95fc549f -display none -no-user-config -nodefaults -rtc
base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-
shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1
-boot strict=on -kernel /var/lib/libvirt/images/guest/vmlinuz -initrd
/var/lib/libvirt/images/guest/initrd.img -append "root=/dev/vda noresume
console=tty0 console=ttyS0,38400n8 apparmor=0 net.ifnames=0
crashkernel=256M" -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2
-drive
file=/var/lib/libvirt/images/guest/disk01.ext4.qcow2,format=qcow2,if=none,id
=drive-virtio-disk0 -device virtio-blk-
pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-
disk0,bootindex=1 -device virtio-balloon-
pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on -serial stdio

-> changing "host" to CascadeLake-Server also works the same way.

Provided me:

inaddy@guest:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 85
model name      : Intel(R) Xeon(R) Gold 6252 CPU @ 2.10GHz
stepping        : 6
microcode       : 0x1
cpu MHz         : 2095.076
cache size      : 16384 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm 
constant_tsc arch_perfmon rep_good nopl xtopology cpuid tsc_known_freq pni 
pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt 
tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 
3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb ibrs_enhanced 
tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep 
bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb 
avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves arat umip pku ospke 
avx512_vnni md_clear arch_capabilities
bugs            : spectre_v1 spectre_v2 spec_store_bypass
bogomips        : 4190.15
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

AND reading the MSR directly:

inaddy@guest:~$ sudo rdmsr 0x10a
2b

We have bits: 0 1 3 and 5 like it should be.

-------------------------

Running same QEMU cmd line, enabling +arch-capabilities in CascadeLake-
Server but without specifying any other CPU flags:

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov 
pat pse36 clflush mmx fxsr sse sse2 syscall nx pdpe1gb rdtscp lm constant_tsc 
rep_good nopl xtopology cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid 
sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand 
hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs 
ibpb fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq 
rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec 
xgetbv1 arat pku ospke avx512_vnni arch_capabilities
bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds

inaddy@guest:~$ sudo rdmsr 0x10a
0

We are not enabling any mitigation flag in arch-capabilities MSR by
default, like we planned so. All CPU capabilities are going to be
enabled by hand and/or through libvirt XML definitions as soon as
libvirt gets the capabilities (this same bug).

-----

Marking Disco as verified.

Thank you!


** Tags removed: verification-needed-disco
** Tags added: verification-done-disco

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1828495

Title:
  [KVM][CLX] CPUID_7_0_EDX_ARCH_CAPABILITIES is not enabled in VM.

Status in intel:
  New
Status in libvirt package in Ubuntu:
  Fix Released
Status in linux package in Ubuntu:
  In Progress
Status in qemu package in Ubuntu:
  Fix Released
Status in libvirt source package in Bionic:
  Confirmed
Status in linux source package in Bionic:
  Confirmed
Status in qemu source package in Bionic:
  Fix Committed
Status in libvirt source package in Cosmic:
  Won't Fix
Status in linux source package in Cosmic:
  Won't Fix
Status in qemu source package in Cosmic:
  Won't Fix
Status in libvirt source package in Disco:
  Confirmed
Status in linux source package in Disco:
  Confirmed
Status in qemu source package in Disco:
  Fix Committed
Status in libvirt source package in Eoan:
  Fix Released
Status in linux source package in Eoan:
  In Progress
Status in qemu source package in Eoan:
  Fix Released

Bug description:
  [Impact]

   * QEMU does not support IceLake and CascadeLake CPUs specific features.
   * Most important feature to be supported is: IA32_ARCH_CAPABILITIES MSR.
   * With IA32_ARCH_CAPABILITIES, QEMU is able to advertise HW mitigations:
     - Rogue Data Cache Load
     - Enhanced IBRS
     - RSB Alternate
     - L1D flush need on VMENTRY
     - speculative Store Bypass
     to guests, as described in document:
     Intel 336996-Speculative-Execution-Side-Channel-Mitigations.pdf

  [Test Case]

   * From Original Description:

  """
  1. Boot up guest using: -cpu Cascadelake-Server

  [root@clx-2s2 yexin]# qemu-system-x86_64 -accel kvm -drive
  if=virtio,id=hd,file=/home/x/x,format=qcow2  -m 4096 -smp 4 -cpu
  Cascadelake-Server -serial stdio

  char device redirected to /dev/pts/3 (label serial0)

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  qemu-system-x86_64: warning: host doesn't support requested feature:
  CPUID.07H:ECX [bit 4]

  2. To check CPU ID related to features[FEAT_7_0_EDX]
  :CPUID_7_0_EDX_ARCH_CAPABILITIES

  Expected Result: Both host and guest's CPUID.07H EDX bit 29 should be
  1.

  Actual Result:

  Host's cpuid: 0x00000007 0x00: eax=0x00000000 ebx=0xd39ffffb
  ecx=0x00000818 edx=0xbc000000  (EDX bit 29=1)

  Guest's cpuid : 0x00000007 0x00: eax=0x00000000 ebx=0xd19f0fb9
  ecx=0x00000818 edx=0x84000000 (EDX bit 29=0)

  Commit:2bdb76c015df7125783d8394d6339d181cb5bc30

  Target Kerned: 5.1
  Target Release: 19.10

  """

  [Regression Potential]

   * Most changes are related to CPU type definitions and its supported
  features. They are all based in upstream changes but, for obvious
  reasons, backporting and/or cherry-picking those could bring issues.
  Biggest concern is breaking something that currently works. Right now,
  the parts being changed that could affect other CPU types would be
  related to a small refactoring of how the features are organized, and
  that would be seen right away when trying to start a new VM after the
  package is installed.

   * Other tests, related to the features being backported, are being
  done by our KVM regression tests, including migration combinations, to
  reduce chances that a regression is introduced.

  [Other Info]
   
   * N/A

To manage notifications about this bug go to:
https://bugs.launchpad.net/intel/+bug/1828495/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to