Virt-manager show a limited number of CPU models

Using virt-manager I’m usually able to select the CPU model of the virtual machine. Like in this screenshot.

As you can see, there are a lot of available models.

But I have another Fedora 31 installation, where the number of these models is very limited, as you can see in this other screenshot.

Why I can see all the CPU models in the second machine?

2 Likes

What is the hardware configuration of the two systems? Are they identical? It is possible that different processors allow virt-manager to support different virtual processors. It’ll need some digging in, though :slight_smile:

1 Like

Eh.
Indeed the difference is that the first system has an Intel CPU, while the second one has an AMD CPU.

1 Like

That could be it then. Maybe worth looking at the virt-manager documentation to see if they say anything about such differences in support? Otherwise, their user-mailing list would probably be the best source of information on this.

1 Like

Pretty strange, the list of available CPU Models running the sudo qemu-kvm -cpu \? command, differs from the one proposed by virt-manager.

Command result
Available CPUs:
x86 486                   (alias configured by machine type)              
x86 486-v1                                                                
x86 Broadwell             (alias configured by machine type)              
x86 Broadwell-IBRS        (alias of Broadwell-v3)                         
x86 Broadwell-noTSX       (alias of Broadwell-v2)                         
x86 Broadwell-noTSX-IBRS  (alias of Broadwell-v4)                         
x86 Broadwell-v1          Intel Core Processor (Broadwell)                
x86 Broadwell-v2          Intel Core Processor (Broadwell, no TSX)        
x86 Broadwell-v3          Intel Core Processor (Broadwell, IBRS)          
x86 Broadwell-v4          Intel Core Processor (Broadwell, no TSX, IBRS)  
x86 Cascadelake-Server    (alias configured by machine type)              
x86 Cascadelake-Server-v1  Intel Xeon Processor (Cascadelake)              
x86 Cascadelake-Server-v2  Intel Xeon Processor (Cascadelake)              
x86 Conroe                (alias configured by machine type)              
x86 Conroe-v1             Intel Celeron_4x0 (Conroe/Merom Class Core 2)   
x86 Dhyana                (alias configured by machine type)              
x86 Dhyana-v1             Hygon Dhyana Processor                          
x86 EPYC                  (alias configured by machine type)              
x86 EPYC-IBPB             (alias of EPYC-v2)                              
x86 EPYC-v1               AMD EPYC Processor                              
x86 EPYC-v2               AMD EPYC Processor (with IBPB)                  
x86 Haswell               (alias configured by machine type)              
x86 Haswell-IBRS          (alias of Haswell-v3)                           
x86 Haswell-noTSX         (alias of Haswell-v2)                           
x86 Haswell-noTSX-IBRS    (alias of Haswell-v4)                           
x86 Haswell-v1            Intel Core Processor (Haswell)                  
x86 Haswell-v2            Intel Core Processor (Haswell, no TSX)          
x86 Haswell-v3            Intel Core Processor (Haswell, IBRS)            
x86 Haswell-v4            Intel Core Processor (Haswell, no TSX, IBRS)    
x86 Icelake-Client        (alias configured by machine type)              
x86 Icelake-Client-v1     Intel Core Processor (Icelake)                  
x86 Icelake-Server        (alias configured by machine type)              
x86 Icelake-Server-v1     Intel Xeon Processor (Icelake)                  
x86 IvyBridge             (alias configured by machine type)              
x86 IvyBridge-IBRS        (alias of IvyBridge-v2)                         
x86 IvyBridge-v1          Intel Xeon E3-12xx v2 (Ivy Bridge)              
x86 IvyBridge-v2          Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)        
x86 KnightsMill           (alias configured by machine type)              
x86 KnightsMill-v1        Intel Xeon Phi Processor (Knights Mill)         
x86 Nehalem               (alias configured by machine type)              
x86 Nehalem-IBRS          (alias of Nehalem-v2)                           
x86 Nehalem-v1            Intel Core i7 9xx (Nehalem Class Core i7)       
x86 Nehalem-v2            Intel Core i7 9xx (Nehalem Core i7, IBRS update)
x86 Opteron_G1            (alias configured by machine type)              
x86 Opteron_G1-v1         AMD Opteron 240 (Gen 1 Class Opteron)           
x86 Opteron_G2            (alias configured by machine type)              
x86 Opteron_G2-v1         AMD Opteron 22xx (Gen 2 Class Opteron)          
x86 Opteron_G3            (alias configured by machine type)              
x86 Opteron_G3-v1         AMD Opteron 23xx (Gen 3 Class Opteron)          
x86 Opteron_G4            (alias configured by machine type)              
x86 Opteron_G4-v1         AMD Opteron 62xx class CPU                      
x86 Opteron_G5            (alias configured by machine type)              
x86 Opteron_G5-v1         AMD Opteron 63xx class CPU                      
x86 Penryn                (alias configured by machine type)              
x86 Penryn-v1             Intel Core 2 Duo P9xxx (Penryn Class Core 2)    
x86 SandyBridge           (alias configured by machine type)              
x86 SandyBridge-IBRS      (alias of SandyBridge-v2)                       
x86 SandyBridge-v1        Intel Xeon E312xx (Sandy Bridge)                
x86 SandyBridge-v2        Intel Xeon E312xx (Sandy Bridge, IBRS update)   
x86 Skylake-Client        (alias configured by machine type)              
x86 Skylake-Client-IBRS   (alias of Skylake-Client-v2)                    
x86 Skylake-Client-v1     Intel Core Processor (Skylake)                  
x86 Skylake-Client-v2     Intel Core Processor (Skylake, IBRS)            
x86 Skylake-Server        (alias configured by machine type)              
x86 Skylake-Server-IBRS   (alias of Skylake-Server-v2)                    
x86 Skylake-Server-v1     Intel Xeon Processor (Skylake)                  
x86 Skylake-Server-v2     Intel Xeon Processor (Skylake, IBRS)            
x86 Snowridge             (alias configured by machine type)              
x86 Snowridge-v1          Intel Atom Processor (SnowRidge)                
x86 Westmere              (alias configured by machine type)              
x86 Westmere-IBRS         (alias of Westmere-v2)                          
x86 Westmere-v1           Westmere E56xx/L56xx/X56xx (Nehalem-C)          
x86 Westmere-v2           Westmere E56xx/L56xx/X56xx (IBRS update)        
x86 athlon                (alias configured by machine type)              
x86 athlon-v1             QEMU Virtual CPU version 2.5+                   
x86 core2duo              (alias configured by machine type)              
x86 core2duo-v1           Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz 
x86 coreduo               (alias configured by machine type)              
x86 coreduo-v1            Genuine Intel(R) CPU           T2600  @ 2.16GHz 
x86 kvm32                 (alias configured by machine type)              
x86 kvm32-v1              Common 32-bit KVM processor                     
x86 kvm64                 (alias configured by machine type)              
x86 kvm64-v1              Common KVM processor                            
x86 n270                  (alias configured by machine type)              
x86 n270-v1               Intel(R) Atom(TM) CPU N270   @ 1.60GHz          
x86 pentium               (alias configured by machine type)              
x86 pentium-v1                                                            
x86 pentium2              (alias configured by machine type)              
x86 pentium2-v1                                                           
x86 pentium3              (alias configured by machine type)              
x86 pentium3-v1                                                           
x86 phenom                (alias configured by machine type)              
x86 phenom-v1             AMD Phenom(tm) 9550 Quad-Core Processor         
x86 qemu32                (alias configured by machine type)              
x86 qemu32-v1             QEMU Virtual CPU version 2.5+                   
x86 qemu64                (alias configured by machine type)              
x86 qemu64-v1             QEMU Virtual CPU version 2.5+                   
x86 base                  base CPU model type with no features enabled    
x86 host                  KVM processor with all supported host features  
x86 max                   Enables all features supported by the accelerator in the current host

Recognized CPUID flags:
  3dnow 3dnowext 3dnowprefetch abm ace2 ace2-en acpi adx aes amd-no-ssb
  amd-ssbd apic arat arch-capabilities avx avx2 avx512-4fmaps avx512-4vnniw
  avx512-vpopcntdq avx512bitalg avx512bw avx512cd avx512dq avx512er avx512f
  avx512ifma avx512pf avx512vbmi avx512vbmi2 avx512vl avx512vnni bmi1 bmi2
  cid cldemote clflush clflushopt clwb cmov cmp-legacy core-capability
  cr8legacy cx16 cx8 dca de decodeassists ds ds-cpl dtes64 erms est extapic
  f16c flushbyasid fma fma4 fpu fsgsbase fxsr fxsr-opt gfni hle ht
  hypervisor ia64 ibpb ibrs-all ibs intel-pt invpcid invtsc kvm-asyncpf
  kvm-hint-dedicated kvm-mmu kvm-nopiodelay kvm-pv-eoi kvm-pv-ipi
  kvm-pv-tlb-flush kvm-pv-unhalt kvm-steal-time kvmclock kvmclock
  kvmclock-stable-bit la57 lahf-lm lbrv lm lwp mca mce md-clear mds-no
  misalignsse mmx mmxext monitor movbe movdir64b movdiri mpx msr mtrr
  nodeid-msr npt nrip-save nx osvw pae pat pause-filter pbe pcid pclmulqdq
  pcommit pdcm pdpe1gb perfctr-core perfctr-nb pfthreshold pge phe phe-en
  pku pmm pmm-en pn pni popcnt pse pse36 rdctl-no rdpid rdrand rdseed
  rdtscp rsba rtm sep sha-ni skinit skip-l1dfl-vmentry smap smep smx
  spec-ctrl split-lock-detect ss ssb-no ssbd sse sse2 sse4.1 sse4.2 sse4a
  ssse3 stibp svm svm-lock syscall tbm tce tm tm2 topoext tsc tsc-adjust
  tsc-deadline tsc-scale umip vaes virt-ssbd vmcb-clean vme vmx vpclmulqdq
  wbnoinvd wdt x2apic xcrypt xcrypt-en xgetbv1 xop xsave xsavec xsaveopt
  xsaves xstore xstore-en xtpr
1 Like

Well. BTW the problem is the AMD CPU.
Even editing the VM config, via virsh edit vm1, and putting a different CPU model, like

  <cpu mode='custom' match='exact' check='partial'>
    <model fallback='allow'>Skylake-Server</model>
  </cpu>

The result of virsh start vm1 is:

error: Failed to start domain vm1
error: the CPU is incompatible with host CPU: Host CPU does not provide required features: pclmuldq, ssse3, fma, pcid, sse4.1, sse4.2, movbe, aes, xsave, avx, f16c, rdrand, fsgsbase, bmi1, hle, avx2, smep, bmi2, erms, invpcid, rtm, mpx, avx512f, avx512dq, rdseed, adx, smap, clwb, avx512cd, avx512bw, avx512vl, xsaveopt, xsavec, xgetbv1
1 Like

Maybe this is the list of all supported CPUs, but what virt-manager shows are the ones out of this that are supported by the host CPU?

Very odd, though!