[Starlingx-discuss] WG: cpu mode
i have set "host-passthrough" in "/etc/nova/nova.conf" ================================= [DEFAULT] libvirt_cpu_mode = host-passthrough [libvirt] cpu_mode = host-passthrough ================================= and restart nove service: # service nova-compute restart for now it works! "lscpu" on guest os shows me the AMD EPIC with all features, very nice. but after reboot the compute-node, the auto-config script change this setting back to "none": [libvirt] cpu_mode = none and passthrough did not work anymore :( so how can i prevent this auto-config or define my new config as persistent? volker... ________________________________________ Von: Michel Thebeau [michel.thebeau@windriver.com] Gesendet: Freitag, 18. Januar 2019 17:07 An: von Hoesslin, Volker; starlingx-discuss@lists.starlingx.io Betreff: Re: [Starlingx-discuss] cpu mode Hi Volker, The output you listed here lists the values accepted by openstack flavor set command. Did you try "Passthrough"? I'm asking internally about cpu model support and I'll respond if I hear anything interesting. M On Thu, 2019-01-17 at 16:23 +0000, von Hoesslin, Volker wrote:
it is impossible to set a EPIC (or any other AMD) as guest CPU?
$ openstack flavor set --property hw:cpu_model=EPYC-IBPB 76609f7b- f0c7-48ca-8c8a-f78481e62cd4 Failed to set flavor property: Invalid hw:cpu_model 'EPYC-IBPB', must be one of: Passthrough, Conroe, Penryn, Nehalem, Westmere, SandyBridge, IvyBridge, Haswell, Broadwell-noTSX, Broadwell, Skylake- Client, Skylake-Server. (HTTP 400) (Request-ID: req-2fda19cc-8e0e- 4be8-a8ea-b58fc00358ce) Command Failed: One or more of the operations failed
but my compute node seems to support EPIC CPUs?
cat /usr/share/libvirt/cpu_map/x86_EPYC-IBRS.xml
<cpus> <model name='EPYC-IBPB'> <signature family='23' model='1'/> <vendor name='AMD'/> <feature name='3dnowprefetch'/> .... <feature name='xsavec'/> <feature name='xsaveopt'/> </model> </cpus>
some tips for me how to handle this?
volker...
Von: von Hoesslin, Volker [Volker.Hoesslin@swsn.de] Gesendet: Donnerstag, 17. Januar 2019 15:50 An: starlingx-discuss@lists.starlingx.io Betreff: [Starlingx-discuss] cpu mode
hi, my setup has two computes nodes, every node has a dual AMD EPYC 7601 CPU config. how can i bring all the CPU features (AES, SSSE3, ...) to the guest VMs. i have tryed with some flavor-metadata but nothing realy helps, the VMs getting just a little subset of cpu-features. some investigations to the kvm-settings hit me to the facts that my nova config has "cpu_model=none" !? how can i fix that and bring my AMD EPIC CPU to my nova-config?!
here is the host /proc/cpuinfo
processor : 127 vendor_id : AuthenticAMD cpu family : 23 model : 1 model name : AMD EPYC 7601 32-Core Processor stepping : 2 microcode : 0x8001227 cpu MHz : 1200.000 cache size : 512 KB physical id : 1 siblings : 64 core id : 31 cpu cores : 32 apicid : 127 initial apicid : 127 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 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl nonstop_tsc extd_apicid amd_dcm aperfmperf eagerfpu pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 cpb hw_pstate retpoline_amd ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca bogomips : 4400.08 TLB size : 2560 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
greez & thx, volker... _______________________________________________ Starlingx-discuss mailing list Starlingx-discuss@lists.starlingx.io http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
You shouldn't need to modify nova.conf. With the current codebase you should be able to specify "hw:cpu_model=Passthrough" in the flavor extra-specs. Chris On 1/21/2019 8:30 AM, von Hoesslin, Volker wrote:
i have set "host-passthrough" in "/etc/nova/nova.conf"
================================= [DEFAULT] libvirt_cpu_mode = host-passthrough
[libvirt] cpu_mode = host-passthrough =================================
and restart nove service: # service nova-compute restart
for now it works! "lscpu" on guest os shows me the AMD EPIC with all features, very nice. but after reboot the compute-node, the auto-config script change this setting back to "none":
[libvirt] cpu_mode = none
and passthrough did not work anymore :( so how can i prevent this auto-config or define my new config as persistent?
this would be very nice, but if i try to launch a vm with a flavor that contain the given extra-spec, i get this error: No valid host was found. There are not enough hosts available. compute-0: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts, compute-1: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts volker... ________________________________________ Von: Chris Friesen [chris.friesen@windriver.com] Gesendet: Montag, 21. Januar 2019 16:09 An: starlingx-discuss@lists.starlingx.io Betreff: Re: [Starlingx-discuss] WG: cpu mode You shouldn't need to modify nova.conf. With the current codebase you should be able to specify "hw:cpu_model=Passthrough" in the flavor extra-specs. Chris On 1/21/2019 8:30 AM, von Hoesslin, Volker wrote:
i have set "host-passthrough" in "/etc/nova/nova.conf"
================================= [DEFAULT] libvirt_cpu_mode = host-passthrough
[libvirt] cpu_mode = host-passthrough =================================
and restart nove service: # service nova-compute restart
for now it works! "lscpu" on guest os shows me the AMD EPIC with all features, very nice. but after reboot the compute-node, the auto-config script change this setting back to "none":
[libvirt] cpu_mode = none
and passthrough did not work anymore :( so how can i prevent this auto-config or define my new config as persistent?
_______________________________________________ Starlingx-discuss mailing list Starlingx-discuss@lists.starlingx.io http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
This is another assumption about Intel CPUs. I *think* the following should work: On the controllers, edit /usr/lib/python2.7/site-packages/nova/scheduler/filters/vcpu_model_filter.py (if that's not the path it should be something pretty close). In the "_is_host_kvm" function add the following before the "return False" line: if 'svm' in info['features']: return True Then, on the active controller node run "sudo sm-restart service nova-scheduler". This should restart the nova scheduler, and at this point you should be able to schedule an instance. Chris On 1/21/2019 9:16 AM, von Hoesslin, Volker wrote:
this would be very nice, but if i try to launch a vm with a flavor that contain the given extra-spec, i get this error:
No valid host was found. There are not enough hosts available. compute-0: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts, compute-1: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts
volker... ________________________________________ Von: Chris Friesen [chris.friesen@windriver.com] Gesendet: Montag, 21. Januar 2019 16:09 An: starlingx-discuss@lists.starlingx.io Betreff: Re: [Starlingx-discuss] WG: cpu mode
You shouldn't need to modify nova.conf.
With the current codebase you should be able to specify "hw:cpu_model=Passthrough" in the flavor extra-specs.
Chris
On 1/21/2019 8:30 AM, von Hoesslin, Volker wrote:
i have set "host-passthrough" in "/etc/nova/nova.conf"
================================= [DEFAULT] libvirt_cpu_mode = host-passthrough
[libvirt] cpu_mode = host-passthrough =================================
and restart nove service: # service nova-compute restart
for now it works! "lscpu" on guest os shows me the AMD EPIC with all features, very nice. but after reboot the compute-node, the auto-config script change this setting back to "none":
[libvirt] cpu_mode = none
and passthrough did not work anymore :( so how can i prevent this auto-config or define my new config as persistent?
_______________________________________________ Starlingx-discuss mailing list Starlingx-discuss@lists.starlingx.io http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
kk, it seems it is the right way, but now i get this error here: No valid host was found. There are not enough hosts available. compute-0: (VCpuModelFilter) Host VCPU model EPYC-IBPB required Passthrough, compute-1: (VCpuModelFilter) Host VCPU model EPYC-IBPB required Passthrough volker... ________________________________________ Von: Chris Friesen [chris.friesen@windriver.com] Gesendet: Montag, 21. Januar 2019 16:28 An: von Hoesslin, Volker; starlingx-discuss@lists.starlingx.io Betreff: Re: AW: [Starlingx-discuss] WG: cpu mode This is another assumption about Intel CPUs. I *think* the following should work: On the controllers, edit /usr/lib/python2.7/site-packages/nova/scheduler/filters/vcpu_model_filter.py (if that's not the path it should be something pretty close). In the "_is_host_kvm" function add the following before the "return False" line: if 'svm' in info['features']: return True Then, on the active controller node run "sudo sm-restart service nova-scheduler". This should restart the nova scheduler, and at this point you should be able to schedule an instance. Chris On 1/21/2019 9:16 AM, von Hoesslin, Volker wrote:
this would be very nice, but if i try to launch a vm with a flavor that contain the given extra-spec, i get this error:
No valid host was found. There are not enough hosts available. compute-0: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts, compute-1: (VCpuModelFilter) Passthrough VCPU Model only available on 'kvm' hosts
volker... ________________________________________ Von: Chris Friesen [chris.friesen@windriver.com] Gesendet: Montag, 21. Januar 2019 16:09 An: starlingx-discuss@lists.starlingx.io Betreff: Re: [Starlingx-discuss] WG: cpu mode
You shouldn't need to modify nova.conf.
With the current codebase you should be able to specify "hw:cpu_model=Passthrough" in the flavor extra-specs.
Chris
On 1/21/2019 8:30 AM, von Hoesslin, Volker wrote:
i have set "host-passthrough" in "/etc/nova/nova.conf"
================================= [DEFAULT] libvirt_cpu_mode = host-passthrough
[libvirt] cpu_mode = host-passthrough =================================
and restart nove service: # service nova-compute restart
for now it works! "lscpu" on guest os shows me the AMD EPIC with all features, very nice. but after reboot the compute-node, the auto-config script change this setting back to "none":
[libvirt] cpu_mode = none
and passthrough did not work anymore :( so how can i prevent this auto-config or define my new config as persistent?
_______________________________________________ Starlingx-discuss mailing list Starlingx-discuss@lists.starlingx.io http://lists.starlingx.io/cgi-bin/mailman/listinfo/starlingx-discuss
participants (2)
-
Chris Friesen
-
von Hoesslin, Volker