Comment 13 for bug 1921880

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

I finally got (temporary) hold of a EPYC 7713 which should work well for this.

Initial detection is the same on Focal and Hirsute
    <mode name='host-model' supported='yes'>
      <model fallback='forbid'>EPYC-Rome</model>
      <vendor>AMD</vendor>
      <feature policy='require' name='pcid'/>
      <feature policy='require' name='x2apic'/>
      <feature policy='require' name='tsc-deadline'/>
      <feature policy='require' name='hypervisor'/>
      <feature policy='require' name='tsc_adjust'/>
      <feature policy='require' name='erms'/>
      <feature policy='require' name='vaes'/>
      <feature policy='require' name='vpclmulqdq'/>
      <feature policy='require' name='spec-ctrl'/>
      <feature policy='require' name='stibp'/>
      <feature policy='require' name='arch-capabilities'/>
      <feature policy='require' name='ssbd'/>
      <feature policy='require' name='xsaves'/>
      <feature policy='require' name='cmp_legacy'/>
      <feature policy='require' name='invtsc'/>
      <feature policy='require' name='amd-ssbd'/>
      <feature policy='require' name='virt-ssbd'/>
      <feature policy='require' name='rdctl-no'/>
      <feature policy='require' name='skip-l1dfl-vmentry'/>
      <feature policy='require' name='mds-no'/>
      <feature policy='require' name='pschange-mc-no'/>
    </mode>

# virsh domcapabilities | grep EPYC
      <model fallback='forbid'>EPYC-Rome</model>
      <model usable='yes'>EPYC-Rome</model>
      <model usable='yes'>EPYC-IBPB</model>
      <model usable='yes'>EPYC</model>

# qemu-system-x86_64 -cpu ? | grep EPYC
x86 EPYC (alias configured by machine type)
x86 EPYC-IBPB (alias of EPYC-v2)
x86 EPYC-Rome (alias configured by machine type)
x86 EPYC-Rome-v1 AMD EPYC-Rome Processor
x86 EPYC-v1 AMD EPYC Processor
x86 EPYC-v2 AMD EPYC Processor (with IBPB)
x86 EPYC-v3 AMD EPYC Processor

So far all just confirming your reports :-)

I tried all combinations of Focal/Hirsute as Host/Guest
Using Host-passthrough, Host-model and the newest named type available at the time EPYC-Rome.
With EPYC-Rome being just that
  <cpu mode='custom' match='exact' check='partial'>
    <model fallback='forbid'>EPYC-Rome</model>
  </cpu>

I can also confirm that focal works but Hirsute guests trigger the mentioned MSR error:
$ uvt-kvm ssh h-on-f "sudo journalctl" | grep MSR
Apr 15 10:31:01 h-on-h kernel: unchecked MSR access error: WRMSR to 0xda0 (tried to write 0x0000000000000000) at rIP: 0xffffffff9027fa44 (native_write_msr+0x4/0x30)
Apr 15 10:31:01 h-on-h kernel: unchecked MSR access error: RDMSR from 0xda0 at rIP: 0xffffffff9027f968 (native_read_msr+0x8/0x40)

This behavior is the same on Focal&Hirsute.

Note: This does not break/abort the guest, but it is bad still.

Thanks for your awesome testing BTW - it seems all I can do is seconding your findings.
Which is great :-)