[libvirt] [PATCH] Add Skylake Cpu Model

Add Skylake Cpu model to cpu maps to let libvirt discover host Skylake cpu model correctly. Currently, libvirt still think a Skylake cpu as Broadwell-noTSX Signed-off-by: Eli Qiao <liyong.qiao@intel.com> --- src/cpu/cpu_map.xml | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml index 0b6d424..228851d 100644 --- a/src/cpu/cpu_map.xml +++ b/src/cpu/cpu_map.xml @@ -347,6 +347,21 @@ <cpuid function='0x80000007' edx='0x00000100'/> </feature> + <!-- XSAVE CPUID[EAX=0xd,ECX=1].EAX --> + <feature name='xsaveopt'> + <cpuid function='0xd' eax='0x00000001'/> + </feature> + <feature name='xsavec'> + <cpuid function='0xd' eax='0x00000002'/> + </feature> + <feature name='xgetbv1'> + <cpuid function='0xd' eax='0x00000004'/> + </feature> + <feature name='xsaves' migratable='no'> + <cpuid function='0xd' eax='0x00000008'/> + </feature> + + <!-- models --> <model name='486'> <feature name='fpu'/> @@ -1137,6 +1152,67 @@ <feature name='xsave'/> </model> + <model name='Skylake'> + <vendor name='Intel'/> + <feature name='3dnowprefetch'/> + <feature name='adx'/> + <feature name='aes'/> + <feature name='apic'/> + <feature name='avx'/> + <feature name='avx2'/> + <feature name='bmi1'/> + <feature name='bmi2'/> + <feature name='clflush'/> + <feature name='cmov'/> + <feature name='cx16'/> + <feature name='cx8'/> + <feature name='de'/> + <feature name='erms'/> + <feature name='fma'/> + <feature name='fpu'/> + <feature name='fsgsbase'/> + <feature name='fxsr'/> + <feature name='invpcid'/> + <feature name='lahf_lm'/> + <feature name='lm'/> + <feature name='mca'/> + <feature name='mce'/> + <feature name='mmx'/> + <feature name='movbe'/> + <feature name='mpx'/> + <feature name='msr'/> + <feature name='mtrr'/> + <feature name='nx'/> + <feature name='pae'/> + <feature name='pat'/> + <feature name='pcid'/> + <feature name='pclmuldq'/> + <feature name='pge'/> + <feature name='pni'/> + <feature name='popcnt'/> + <feature name='pse'/> + <feature name='pse36'/> + <feature name='rdseed'/> + <feature name='rdtscp'/> + <feature name='sep'/> + <feature name='smap'/> + <feature name='smep'/> + <feature name='sse'/> + <feature name='sse2'/> + <feature name='sse4.1'/> + <feature name='sse4.2'/> + <feature name='ssse3'/> + <feature name='syscall'/> + <feature name='tsc'/> + <feature name='tsc-deadline'/> + <feature name='x2apic'/> + <feature name='xgetbv1'/> + <feature name='xsave'/> + <feature name='xsavec'/> + <feature name='xsaveopt'/> + </model> + + <!-- AMD CPUs --> <model name='athlon'> <vendor name='AMD'/> -- 1.9.1

On Mon, May 16, 2016 at 17:15:44 +0800, Eli Qiao wrote:
Add Skylake Cpu model to cpu maps to let libvirt discover host Skylake cpu model correctly.
Currently, libvirt still think a Skylake cpu as Broadwell-noTSX Signed-off-by: Eli Qiao <liyong.qiao@intel.com> --- src/cpu/cpu_map.xml | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+)
Adding a new model to libvirt when there is no support for it in QEMU makes no sense. The only benefit will be seeing Skylake in capabilities XML, but users won't be able to use it anyway. Jirka

Hi Jirka Thanks for your comments,, the qemu patch is on the way, check https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg03951.html Even we cann't use qemu to boot a Skylake cpu virtual machine, but if we specify in host mode, we still can And besides, the follow cpu feature has already in qemu tree. + <!-- XSAVE CPUID[EAX=0xd,ECX=1].EAX --> + <feature name='xsaveopt'> + <cpuid function='0xd' eax='0x00000001'/> + </feature> + <feature name='xsavec'> + <cpuid function='0xd' eax='0x00000002'/> + </feature> + <feature name='xgetbv1'> + <cpuid function='0xd' eax='0x00000004'/> + </feature> + <feature name='xsaves' migratable='no'> + <cpuid function='0xd' eax='0x00000008'/> + </feature> Best Regards, Qiao, Liyong (Eli) OTC SSG Intel ------------------------------------------------ 此致 敬礼! 英特尔(中国)有限公司软件与服务部开源技术中心 乔立勇 -----Original Message----- From: Jiri Denemark [mailto:jdenemar@redhat.com] Sent: Monday, May 16, 2016 9:03 PM To: Qiao, Liyong <liyong.qiao@intel.com> Cc: libvir-list@redhat.com Subject: Re: [libvirt] [PATCH] Add Skylake Cpu Model On Mon, May 16, 2016 at 17:15:44 +0800, Eli Qiao wrote: > Add Skylake Cpu model to cpu maps to let libvirt discover host Skylake > cpu model correctly. > > Currently, libvirt still think a Skylake cpu as Broadwell-noTSX > Signed-off-by: Eli Qiao <liyong.qiao@intel.com> > --- > src/cpu/cpu_map.xml | 76 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ + > 1 file changed, 76 insertions(+) Adding a new model to libvirt when there is no support for it in QEMU makes no sense. The only benefit will be seeing Skylake in capabilities XML, but users won't be able to use it anyway. Jirka

On Tue, May 17, 2016 at 08:45:37 +0000, Qiao, Liyong wrote:
Hi Jirka Thanks for your comments,, the qemu patch is on the way, check https://lists.gnu.org/archive/html/qemu-devel/2016-04/msg03951.html
Right, once the CPU model is added to QEMU, we'll update our CPU map too.
Even we cann't use qemu to boot a Skylake cpu virtual machine, but if we specify in host mode, we still can
Yes, but you can do that even if libvirt does not report the host CPU as Skylake.
And besides, the follow cpu feature has already in qemu tree.
+ <!-- XSAVE CPUID[EAX=0xd,ECX=1].EAX --> + <feature name='xsaveopt'> + <cpuid function='0xd' eax='0x00000001'/> + </feature> + <feature name='xsavec'> + <cpuid function='0xd' eax='0x00000002'/> + </feature> + <feature name='xgetbv1'> + <cpuid function='0xd' eax='0x00000004'/> + </feature> + <feature name='xsaves' migratable='no'> + <cpuid function='0xd' eax='0x00000008'/> + </feature>
Yes, these features could be added even now, although this patch is not enough. I'll take care of adding the features to libvirt. Jirka
participants (3)
-
Eli Qiao
-
Jiri Denemark
-
Qiao, Liyong