Hi Vinícius,

Thank you for the libvirt output - libvirt marked the EPYC CPU as not usable. Let's query qemu why that is.  You do not need an oVirt VM to do that, just any VM running on qemu, e.g. created by Virtual Machines Manager or you can follow the command from the answer here:

https://unix.stackexchange.com/questions/309788/how-to-create-a-vm-from-scratch-with-virsh

Then you can use the following commands:
sudo virsh list --all
sudo virsh qemu-monitor-command [your-vm's-name] --pretty '{"execute":"query-cpu-definitions"}'

I do not know if this could be related to UEFI Firmware, lets check the qemu output first.

Regards,

Lucia


On Fri, Nov 20, 2020 at 4:07 PM Vinícius Ferrão <ferrao@versatushpc.com.br> wrote:

Hi Lucia,

 

I had to create an user for virsh:

# saslpasswd2 -a libvirt test

Password:

Again (for verification):

 

With that in mind, here’s the outputs:

 

<domainCapabilities>

  <path>/usr/libexec/qemu-kvm</path>

  <domain>kvm</domain>

  <machine>pc-i440fx-rhel7.6.0</machine>

  <arch>x86_64</arch>

  <vcpu max='240'/>

  <iothreads supported='yes'/>

  <os supported='yes'>

    <enum name='firmware'/>

    <loader supported='yes'>

      <value>/usr/share/OVMF/OVMF_CODE.secboot.fd</value>

      <enum name='type'>

        <value>rom</value>

        <value>pflash</value>

      </enum>

      <enum name='readonly'>

        <value>yes</value>

        <value>no</value>

      </enum>

      <enum name='secure'>

        <value>no</value>

      </enum>

    </loader>

  </os>

  <cpu>

    <mode name='host-passthrough' supported='yes'/>

    <mode name='host-model' supported='yes'>

      <model fallback='forbid'>EPYC-IBPB</model>

      <vendor>AMD</vendor>

      <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='clwb'/>

      <feature policy='require' name='umip'/>

      <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='perfctr_core'/>

      <feature policy='require' name='invtsc'/>

      <feature policy='require' name='clzero'/>

      <feature policy='require' name='wbnoinvd'/>

      <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'/>

      <feature policy='disable' name='monitor'/>

      <feature policy='disable' name='svm'/>

    </mode>

    <mode name='custom' supported='yes'>

      <model usable='yes'>qemu64</model>

      <model usable='yes'>qemu32</model>

      <model usable='no'>phenom</model>

      <model usable='yes'>pentium3</model>

      <model usable='yes'>pentium2</model>

      <model usable='yes'>pentium</model>

      <model usable='no'>n270</model>

      <model usable='yes'>kvm64</model>

      <model usable='yes'>kvm32</model>

      <model usable='no'>coreduo</model>

      <model usable='no'>core2duo</model>

      <model usable='no'>athlon</model>

      <model usable='yes'>Westmere-IBRS</model>

      <model usable='yes'>Westmere</model>

      <model usable='no'>Skylake-Server-noTSX-IBRS</model>

      <model usable='no'>Skylake-Server-IBRS</model>

      <model usable='no'>Skylake-Server</model>

      <model usable='no'>Skylake-Client-noTSX-IBRS</model>

      <model usable='no'>Skylake-Client-IBRS</model>

      <model usable='no'>Skylake-Client</model>

      <model usable='yes'>SandyBridge-IBRS</model>

      <model usable='yes'>SandyBridge</model>

      <model usable='yes'>Penryn</model>

      <model usable='no'>Opteron_G5</model>

      <model usable='no'>Opteron_G4</model>

      <model usable='yes'>Opteron_G3</model>

      <model usable='yes'>Opteron_G2</model>

      <model usable='yes'>Opteron_G1</model>

      <model usable='yes'>Nehalem-IBRS</model>

      <model usable='yes'>Nehalem</model>

      <model usable='no'>IvyBridge-IBRS</model>

      <model usable='no'>IvyBridge</model>

      <model usable='no'>Icelake-Server-noTSX</model>

      <model usable='no'>Icelake-Server</model>

      <model usable='no'>Icelake-Client-noTSX</model>

      <model usable='no'>Icelake-Client</model>

      <model usable='no'>Haswell-noTSX-IBRS</model>

      <model usable='no'>Haswell-noTSX</model>

      <model usable='no'>Haswell-IBRS</model>

      <model usable='no'>Haswell</model>

      <model usable='no'>EPYC-IBPB</model>

      <model usable='no'>EPYC</model>

      <model usable='no'>Dhyana</model>

     <model usable='no'>Cooperlake</model>

      <model usable='yes'>Conroe</model>

      <model usable='no'>Cascadelake-Server-noTSX</model>

      <model usable='no'>Cascadelake-Server</model>

      <model usable='no'>Broadwell-noTSX-IBRS</model>

      <model usable='no'>Broadwell-noTSX</model>

      <model usable='no'>Broadwell-IBRS</model>

      <model usable='no'>Broadwell</model>

      <model usable='yes'>486</model>

    </mode>

  </cpu>

  <devices>

    <disk supported='yes'>

      <enum name='diskDevice'>

        <value>disk</value>

        <value>cdrom</value>

        <value>floppy</value>

        <value>lun</value>

      </enum>

      <enum name='bus'>

        <value>ide</value>

        <value>fdc</value>

        <value>scsi</value>

        <value>virtio</value>

        <value>usb</value>

        <value>sata</value>

      </enum>

      <enum name='model'>

        <value>virtio</value>

        <value>virtio-transitional</value>

        <value>virtio-non-transitional</value>

      </enum>

    </disk>

    <graphics supported='yes'>

      <enum name='type'>

        <value>sdl</value>

        <value>vnc</value>

        <value>spice</value>

      </enum>

    </graphics>

    <video supported='yes'>

      <enum name='modelType'>

        <value>vga</value>

        <value>cirrus</value>

        <value>qxl</value>

        <value>virtio</value>

        <value>none</value>

        <value>bochs</value>

        <value>ramfb</value>

      </enum>

    </video>

    <hostdev supported='yes'>

      <enum name='mode'>

        <value>subsystem</value>

      </enum>

      <enum name='startupPolicy'>

        <value>default</value>

        <value>mandatory</value>

        <value>requisite</value>

        <value>optional</value>

      </enum>

      <enum name='subsysType'>

        <value>usb</value>

        <value>pci</value>

        <value>scsi</value>

      </enum>

      <enum name='capsType'/>

      <enum name='pciBackend'>

        <value>default</value>

        <value>vfio</value>

      </enum>

    </hostdev>

    <rng supported='yes'>

      <enum name='model'>

        <value>virtio</value>

        <value>virtio-transitional</value>

        <value>virtio-non-transitional</value>

      </enum>

      <enum name='backendModel'>

        <value>random</value>

        <value>egd</value>

      </enum>

    </rng>

  </devices>

  <features>

    <gic supported='no'/>

    <vmcoreinfo supported='yes'/>

    <genid supported='yes'/>

    <backingStoreInput supported='yes'/>

    <backup supported='no'/>

    <sev supported='yes'>

      <cbitpos>47</cbitpos>

      <reducedPhysBits>1</reducedPhysBits>

    </sev>

  </features>

</domainCapabilities>

 

Regarding the last two commands, I don’t have any VM running, since I cannot start anything on the engine.

 

I’m starting to suspect that this may be something in the UEFI Firmware.

 

Any thoughts?

 

Thanks,

 

From: Lucia Jelinkova <ljelinko@redhat.com>
Sent: Friday, November 20, 2020 5:30 AM
To: Vinícius Ferrão <ferrao@versatushpc.com.br>
Cc: users <users@ovirt.org>
Subject: Re: [ovirt-users] EPYC CPU not being detected correctly on cluster

 

Hi,

 

oVirt CPU detection depends on libvirt (and that depends on qemu) CPU models. Could you please run the following command to see what libvirt reports?

 

virsh domcapabilities

 

That should give you the list of CPUs known to libvirt with a usability flag for each CPU.

 

If you find out that the CPU is not usable by libvirt, you might want to dig deeper by querying quemu directly.

 

Locate any VM running on the system by

sudo virsh list --all

 

Use the name of a VM in the following command:

sudo virsh qemu-monitor-command [your-vm's-name] --pretty '{"execute":"query-cpu-definitions"}'

 

That would give you the list of all CPUs supported by qemu and it will list all cpu's features that are not available on your system.

 

Regards,

 

Lucia

 

On Thu, Nov 19, 2020 at 9:38 PM Vinícius Ferrão via Users <users@ovirt.org> wrote:

Hi

 

I’ve an strange issue with two hosts (not using the hypervisor image) with EPYC CPUs, on the engine I got this message:

 

The host CPU does not match the Cluster CPU Type and is running in a degraded mode. It is missing the following CPU flags: model_EPYC. Please update the host CPU microcode or change the Cluster CPU Type.

 

But it is an EPYC CPU, the firmware is updated to the latest versions, but for some reason oVirt does not like it.

 

Here’s the relevant output from VDSM:

"cpuCores": "128",

    "cpuFlags": "ibs,vme,abm,sep,ssse3,perfctr_core,sse4_2,skip-l1dfl-vmentry,cx16,pae,misalignsse,avx2,smap,movbe,vgif,rdctl-no,extapic,clflushopt,de,sse4_1,xsaveerptr,perfctr_llc,fma,mca,sse,rdtscp,monitor,umip,mwaitx,cr8_legacy,mtrr,stibp,bmi2,pclmulqdq,amd-ssbd,lbrv,pdpe1gb,constant_tsc,vmmcall,f16c,ibrs,fsgsbase,invtsc,nopl,lm,3dnowprefetch,smca,ht,tsc_adjust,popcnt,cpb,bmi1,mmx,arat,aperfmperf,bpext,cqm_occup_llc,virt-ssbd,tce,pse,xsave,xgetbv1,topoext,sha_ni,amd_ppin,rdrand,cpuid,tsc_scale,extd_apicid,cqm,rep_good,tsc,sse4a,flushbyasid,pschange-mc-no,mds-no,ibpb,smep,clflush,tsc-deadline,fxsr,pat,avx,pfthreshold,v_vmsave_vmload,osvw,xsavec,cdp_l3,clzero,svm_lock,nonstop_tsc,adx,hw_pstate,spec-ctrl,arch-capabilities,xsaveopt,skinit,rdt_a,svm,rdpid,lahf_lm,fpu,rdseed,fxsr_opt,sse2,nrip_save,vmcb_clean,sme,cat_l3,cqm_mbm_local,irperf,overflow_recov,avic,mce,mmxext,msr,cx8,hypervisor,wdt,mba,nx,decodeassists,cmp_legacy,x2apic,perfctr_nb,succor,pni,xsaves,clwb,cqm_llc,syscall,apic,pge,npt,pse36,cmov,ssbd,pausefilter,sev,aes,wbnoinvd,cqm_mbm_total,spec_ctrl,model_qemu32,model_Opteron_G3,model_Nehalem-IBRS,model_qemu64,model_Conroe,model_kvm64,model_Penryn,model_SandyBridge,model_pentium,model_pentium2,model_kvm32,model_Nehalem,model_Opteron_G2,model_pentium3,model_Opteron_G1,model_SandyBridge-IBRS,model_486,model_Westmere-IBRS,model_Westmere",

    "cpuModel": "AMD EPYC 7H12 64-Core Processor",

    "cpuSockets": "2",

    "cpuSpeed": "3293.405",

    "cpuThreads": "256",

 

Any ideia on why ou what to do to fix it?

 

Thanks,

 

_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-leave@ovirt.org
Privacy Statement: https://www.ovirt.org/privacy-policy.html
oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/
List Archives: https://lists.ovirt.org/archives/list/users@ovirt.org/message/WP6XL6ODTLJVB46MAXKCOA34PEFN576Q/