Previously, sync_qemu_features_i386.py would only detect
differences between libvirt's and qemu's list of x86 features.
Adding those features to libvirt was a manual and error prone
task. Additionally, we had to keep a list of non-feature cpu
properties that qemu reported.
Replace this script with a version that reads the feature
names and their cpuid / msr data from qemu source code directly
and generate the libvirt feature list, thus avoiding potential
for human error.
v1:
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/OV...
changes since v1:
* rebased to current master (some conflicts in tests/ due to 8c07850c18)
* dropped patch 4 ("cpu_map: Remove unused alias information")
* adjusted patch 5 to generate "<alias .../>" entries
Tim Wiederhake (4):
cpu_map: Sort cpu features
cpu_map: Format register values
cpu_map: Format comments
cpu_map: Rewrite feature sync script
src/cpu_map/sync_qemu_features_i386.py | 627 ++++++++++----
src/cpu_map/x86_features.xml | 807 +++++++++---------
...4-baseline-Westmere+Nehalem-migratable.xml | 4 +-
...86_64-baseline-Westmere+Nehalem-result.xml | 4 +-
.../x86_64-baseline-features-result.xml | 4 +-
.../x86_64-cpuid-A10-5800K-guest.xml | 8 +-
.../x86_64-cpuid-A10-5800K-host.xml | 8 +-
.../x86_64-cpuid-A10-5800K-json.xml | 8 +-
.../x86_64-cpuid-Atom-D510-guest.xml | 16 +-
.../x86_64-cpuid-Atom-D510-host.xml | 16 +-
.../x86_64-cpuid-Atom-N450-guest.xml | 14 +-
.../x86_64-cpuid-Atom-N450-host.xml | 14 +-
.../x86_64-cpuid-Atom-P5362-guest.xml | 12 +-
.../x86_64-cpuid-Atom-P5362-host.xml | 18 +-
.../x86_64-cpuid-Atom-P5362-json.xml | 8 +-
.../x86_64-cpuid-Cooperlake-guest.xml | 12 +-
.../x86_64-cpuid-Cooperlake-host.xml | 12 +-
.../x86_64-cpuid-Cooperlake-json.xml | 8 +-
.../x86_64-cpuid-Core-i5-2500-guest.xml | 14 +-
.../x86_64-cpuid-Core-i5-2500-host.xml | 14 +-
.../x86_64-cpuid-Core-i5-2500-json.xml | 4 +-
.../x86_64-cpuid-Core-i5-2540M-guest.xml | 14 +-
.../x86_64-cpuid-Core-i5-2540M-host.xml | 14 +-
.../x86_64-cpuid-Core-i5-2540M-json.xml | 4 +-
.../x86_64-cpuid-Core-i5-4670T-guest.xml | 16 +-
.../x86_64-cpuid-Core-i5-4670T-host.xml | 16 +-
.../x86_64-cpuid-Core-i5-4670T-json.xml | 6 +-
.../x86_64-cpuid-Core-i5-650-guest.xml | 14 +-
.../x86_64-cpuid-Core-i5-650-host.xml | 14 +-
.../x86_64-cpuid-Core-i5-650-json.xml | 4 +-
.../x86_64-cpuid-Core-i5-6600-guest.xml | 12 +-
.../x86_64-cpuid-Core-i5-6600-host.xml | 12 +-
.../x86_64-cpuid-Core-i5-6600-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-2600-guest.xml | 14 +-
.../x86_64-cpuid-Core-i7-2600-host.xml | 14 +-
.../x86_64-cpuid-Core-i7-2600-json.xml | 4 +-
...6_64-cpuid-Core-i7-2600-xsaveopt-guest.xml | 14 +-
...86_64-cpuid-Core-i7-2600-xsaveopt-host.xml | 14 +-
...86_64-cpuid-Core-i7-2600-xsaveopt-json.xml | 4 +-
.../x86_64-cpuid-Core-i7-3520M-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-3520M-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-3740QM-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-3740QM-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-3740QM-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-3770-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-3770-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-3770-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-4510U-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-4510U-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-4510U-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-4600U-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-4600U-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-4600U-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-5600U-arat-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-arat-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-arat-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-5600U-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-ibrs-guest.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-ibrs-host.xml | 16 +-
.../x86_64-cpuid-Core-i7-5600U-ibrs-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-5600U-json.xml | 6 +-
.../x86_64-cpuid-Core-i7-7600U-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-7600U-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-7600U-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-7700-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-7700-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-7700-json.xml | 2 +-
.../x86_64-cpuid-Core-i7-8550U-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-8550U-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-8550U-json.xml | 8 +-
.../x86_64-cpuid-Core-i7-8700-guest.xml | 12 +-
.../x86_64-cpuid-Core-i7-8700-host.xml | 12 +-
.../x86_64-cpuid-Core-i7-8700-json.xml | 2 +-
.../x86_64-cpuid-Core2-E6850-guest.xml | 14 +-
.../x86_64-cpuid-Core2-E6850-host.xml | 14 +-
.../x86_64-cpuid-Core2-E6850-json.xml | 4 +-
.../x86_64-cpuid-Core2-Q9500-guest.xml | 14 +-
.../x86_64-cpuid-Core2-Q9500-host.xml | 14 +-
.../x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 2 +-
.../x86_64-cpuid-EPYC-7502-32-Core-host.xml | 2 +-
.../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 2 +-
.../x86_64-cpuid-EPYC-7601-32-Core-host.xml | 2 +-
..._64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml | 2 +-
...6_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 2 +-
...6_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml | 2 +-
.../x86_64-cpuid-FX-8150-guest.xml | 8 +-
.../cputestdata/x86_64-cpuid-FX-8150-host.xml | 8 +-
..._64-cpuid-Hygon-C86-7185-32-core-guest.xml | 2 +-
...6_64-cpuid-Hygon-C86-7185-32-core-host.xml | 2 +-
.../x86_64-cpuid-Ice-Lake-Server-guest.xml | 12 +-
.../x86_64-cpuid-Ice-Lake-Server-host.xml | 12 +-
.../x86_64-cpuid-Ice-Lake-Server-json.xml | 2 +-
.../x86_64-cpuid-Opteron-1352-guest.xml | 12 +-
.../x86_64-cpuid-Opteron-1352-host.xml | 12 +-
.../x86_64-cpuid-Opteron-2350-guest.xml | 12 +-
.../x86_64-cpuid-Opteron-2350-host.xml | 12 +-
.../x86_64-cpuid-Opteron-2350-json.xml | 10 +-
.../x86_64-cpuid-Opteron-6234-guest.xml | 8 +-
.../x86_64-cpuid-Opteron-6234-host.xml | 8 +-
.../x86_64-cpuid-Opteron-6234-json.xml | 8 +-
.../x86_64-cpuid-Opteron-6282-guest.xml | 8 +-
.../x86_64-cpuid-Opteron-6282-host.xml | 8 +-
.../x86_64-cpuid-Pentium-P6100-guest.xml | 14 +-
.../x86_64-cpuid-Pentium-P6100-host.xml | 14 +-
.../x86_64-cpuid-Phenom-B95-guest.xml | 12 +-
.../x86_64-cpuid-Phenom-B95-host.xml | 16 +-
.../x86_64-cpuid-Phenom-B95-json.xml | 12 +-
...4-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 2 +-
...64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 2 +-
...6_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 2 +-
...86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 2 +-
.../x86_64-cpuid-Xeon-5110-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-5110-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E3-1225-v5-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1225-v5-host.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1225-v5-json.xml | 2 +-
.../x86_64-cpuid-Xeon-E3-1245-v5-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1245-v5-host.xml | 12 +-
.../x86_64-cpuid-Xeon-E3-1245-v5-json.xml | 2 +-
.../x86_64-cpuid-Xeon-E5-2609-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2609-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2609-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2623-v4-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2623-v4-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2623-v4-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2630-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2630-v4-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v4-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2630-v4-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2650-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E5-2650-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E5-2650-json.xml | 4 +-
.../x86_64-cpuid-Xeon-E5-2650-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E5-2650-v4-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v4-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E5-2650-v4-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E7-4820-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4820-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4820-json.xml | 4 +-
.../x86_64-cpuid-Xeon-E7-4830-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4830-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E7-4830-json.xml | 4 +-
.../x86_64-cpuid-Xeon-E7-8890-v3-guest.xml | 16 +-
.../x86_64-cpuid-Xeon-E7-8890-v3-host.xml | 16 +-
.../x86_64-cpuid-Xeon-E7-8890-v3-json.xml | 6 +-
.../x86_64-cpuid-Xeon-E7540-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-E7540-host.xml | 14 +-
.../x86_64-cpuid-Xeon-E7540-json.xml | 4 +-
.../x86_64-cpuid-Xeon-Gold-5115-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-5115-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-5115-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Gold-6130-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6130-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6130-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Gold-6148-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6148-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Gold-6148-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Platinum-8268-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-8268-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-8268-json.xml | 2 +-
.../x86_64-cpuid-Xeon-Platinum-9242-guest.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-9242-host.xml | 12 +-
.../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 8 +-
.../x86_64-cpuid-Xeon-W3520-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-W3520-host.xml | 14 +-
.../x86_64-cpuid-Xeon-W3520-json.xml | 4 +-
.../x86_64-cpuid-Xeon-X5460-guest.xml | 14 +-
.../x86_64-cpuid-Xeon-X5460-host.xml | 14 +-
...id-baseline-Broadwell-IBRS+Cascadelake.xml | 6 +-
..._64-cpuid-baseline-Cascadelake+Icelake.xml | 2 +-
...puid-baseline-Cascadelake+Skylake-IBRS.xml | 2 +-
..._64-cpuid-baseline-Cascadelake+Skylake.xml | 2 +-
...-cpuid-baseline-Cooperlake+Cascadelake.xml | 8 +-
...6_64-cpuid-baseline-Cooperlake+Icelake.xml | 2 +-
.../x86_64-cpuid-baseline-Haswell+Skylake.xml | 6 +-
...-baseline-Haswell-noTSX-IBRS+Broadwell.xml | 6 +-
...seline-Haswell-noTSX-IBRS+Skylake-IBRS.xml | 6 +-
...id-baseline-Haswell-noTSX-IBRS+Skylake.xml | 6 +-
...4-cpuid-baseline-Skylake-Client+Server.xml | 2 +-
.../x86_64-host+guest,model486-result.xml | 18 +-
.../x86_64-host+guest,models-result.xml | 4 +-
..._64-host+host+host-model,models-result.xml | 12 +-
.../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 8 +-
.../domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 6 +-
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 8 +-
.../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 8 +-
.../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 6 +-
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 8 +-
.../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 6 +-
.../qemu_7.2.0-tcg.x86_64+hvf.xml | 6 +-
.../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 6 +-
.../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml | 6 +-
...-host-model-fallback-kvm.x86_64-4.2.0.args | 2 +-
...-host-model-fallback-kvm.x86_64-5.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-4.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-5.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-5.1.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-5.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-6.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-6.1.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-6.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-7.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-7.1.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-7.2.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-8.0.0.args | 2 +-
...-host-model-fallback-tcg.x86_64-8.1.0.args | 2 +-
...host-model-fallback-tcg.x86_64-latest.args | 2 +-
.../cpu-host-model-kvm.x86_64-4.2.0.args | 2 +-
.../cpu-host-model-kvm.x86_64-5.0.0.args | 2 +-
...ost-model-nofallback-kvm.x86_64-4.2.0.args | 2 +-
...ost-model-nofallback-kvm.x86_64-5.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-4.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-5.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-5.1.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-5.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-6.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-6.1.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-6.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-7.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-7.1.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-7.2.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-8.0.0.args | 2 +-
...ost-model-nofallback-tcg.x86_64-8.1.0.args | 2 +-
...st-model-nofallback-tcg.x86_64-latest.args | 2 +-
.../cpu-host-model-tcg.x86_64-4.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-5.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-5.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-5.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-6.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-6.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-6.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-7.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-7.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-7.2.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-8.0.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-8.1.0.args | 2 +-
.../cpu-host-model-tcg.x86_64-latest.args | 2 +-
251 files changed, 1881 insertions(+), 1577 deletions(-)
--
2.43.0