[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-discuss] how to get the features of a cpu model
From: |
Feng, Shaohe |
Subject: |
[Qemu-discuss] how to get the features of a cpu model |
Date: |
Tue, 6 Dec 2016 22:26:30 +0000 |
Hi all,
I write a script to get the features of a cpu model
https://github.com/shaohef/cpu_model_features/blob/master/intersection_features.py
I use “qemu -cpu model,+features,check“ to try whether a cpu model can support
a feature.
I find different cpu models can support same features on same host.
such as a result on one of my host with ivybridge CPU.
model: n270
support 55 featurs: ['kvmclock', 'pge', 'avx', 'clflush', 'sep', 'syscall',
'tsc-deadline', 'kvm_pv_eoi', 'fsgsbase', 'xsave', 'msr', 'vmx',
'kvm_pv_unhalt', 'erms', 'cmov', 'f16c', 'smep', 'ssse3', 'tsc', 'fxsr', 'pae',
'mce', 'vme', 'mmx', 'cx8', 'rdtscp', 'mca', 'pse', 'popcnt', 'apic', 'sse',
'pat', 'kvm_steal_time', 'kvm_asyncpf', 'lahf_lm', 'aes', 'sse2', 'ss',
'hypervisor', 'pcid', 'de', 'fpu', 'cx16', 'pse36', 'mtrr', 'rdrand',
'kvm_nopiodelay', 'x2apic', 'sse4.2|sse4_2', 'sse4.1|sse4_1',
'pclmulqdq|pclmuldq', 'pni|sse3', 'lm|i64', 'fxsr_opt|ffxsr', 'nx|xd']
================================================================================
model: Conroe
support 55 featurs: ['kvmclock', 'pge', 'avx', 'clflush', 'sep', 'syscall',
'tsc-deadline', 'kvm_pv_eoi', 'fsgsbase', 'xsave', 'msr', 'vmx',
'kvm_pv_unhalt', 'erms', 'cmov', 'f16c', 'smep', 'ssse3', 'tsc', 'fxsr', 'pae',
'mce', 'vme', 'mmx', 'cx8', 'rdtscp', 'mca', 'pse', 'popcnt', 'apic', 'sse',
'pat', 'kvm_steal_time', 'kvm_asyncpf', 'lahf_lm', 'aes', 'sse2', 'ss',
'hypervisor', 'pcid', 'de', 'fpu', 'cx16', 'pse36', 'mtrr', 'rdrand',
'kvm_nopiodelay', 'x2apic', 'sse4.2|sse4_2', 'sse4.1|sse4_1',
'pclmulqdq|pclmuldq', 'pni|sse3', 'lm|i64', 'fxsr_opt|ffxsr', 'nx|xd']
================================================================================
model: SandyBridge
support 55 featurs: ['kvmclock', 'pge', 'avx', 'clflush', 'sep', 'syscall',
'tsc-deadline', 'kvm_pv_eoi', 'fsgsbase', 'xsave', 'msr', 'vmx',
'kvm_pv_unhalt', 'erms', 'cmov', 'f16c', 'smep', 'ssse3', 'tsc', 'fxsr', 'pae',
'mce', 'vme', 'mmx', 'cx8', 'rdtscp', 'mca', 'pse', 'popcnt', 'apic', 'sse',
'pat', 'kvm_steal_time', 'kvm_asyncpf', 'lahf_lm', 'aes', 'sse2', 'ss',
'hypervisor', 'pcid', 'de', 'fpu', 'cx16', 'pse36', 'mtrr', 'rdrand',
'kvm_nopiodelay', 'x2apic', 'sse4.2|sse4_2', 'sse4.1|sse4_1',
'pclmulqdq|pclmuldq', 'pni|sse3', 'lm|i64', 'fxsr_opt|ffxsr', 'nx|xd’]
you can see there is no difference for the supported features between n270,
SandyBridge.
Also I have get a result on another host with haswell CPU.
================================================================================
model: SandyBridge
support 65 featurs: ['kvmclock', 'pge', 'avx', 'clflush', 'sep', 'rtm',
'tsc-deadline', 'abm', 'fsgsbase', 'xsave', 'msr', 'vmx', 'kvm_pv_unhalt',
'erms', 'hle', 'cmov', 'f16c', 'smep', 'ssse3', 'tsc', 'fxsr', 'syscall',
'pae', 'mce', 'fma', 'vme', 'mmx', 'cx8', 'rdtscp', 'mca', 'pse', 'popcnt',
'invpcid', 'pdpe1gb', 'apic', 'sse', 'pat', 'kvm_steal_time', 'kvm_pv_eoi',
'kvm_asyncpf', 'lahf_lm', 'aes', 'avx2', 'sse2', 'ss', 'hypervisor', 'bmi1',
'bmi2', 'pcid', 'de', 'fpu', 'cx16', 'pse36', 'mtrr', 'movbe', 'rdrand',
'kvm_nopiodelay', 'x2apic', 'sse4.2|sse4_2', 'sse4.1|sse4_1',
'pclmulqdq|pclmuldq', 'pni|sse3', 'lm|i64', 'fxsr_opt|ffxsr', 'nx|xd’]
You can see the same CPU model SandyBridge can support more features on the
host with haswell CPU than the host with ivybridge CPU.
My questions are:
1. can I live-migration the vm with same CPU model(for example SandyBridge)
between haswell host and ivybridge host
2. does qemu support a API to get it’s emulated CPUID?
- [Qemu-discuss] how to get the features of a cpu model,
Feng, Shaohe <=