[PATCH 0/5] Rewrite x86 feature sync script

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Tim Wiederhake (5):
  cpu_map: Sort cpu features
  cpu_map: Format register values
  cpu_map: Format comments
  cpu_map: Remove unused alias information
  cpu_map: Rewrite feature sync script

 src/cpu/cpu_x86.c                             |   5 -
 src/cpu_map/sync_qemu_features_i386.py        | 548 ++++++++----
 src/cpu_map/x86_features.xml                  | 823 +++++++++---------
 ...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 +-
 252 files changed, 1797 insertions(+), 1603 deletions(-)

-- 
2.43.0
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux