[libvirt] [PATCH v2 00/22] Fix host-model if the chosen CPU model has more features in QEMU compared to our cpu_map.xml

John Ferlan jferlan at redhat.com
Fri Oct 13 20:46:57 UTC 2017



On 10/13/2017 02:14 PM, Jiri Denemark wrote:
> When decoding CPUID data to virCPUDef we need to be careful about using
> a CPU model which cannot be directly used on the current host. Normally,
> libvirt would notice the features which prevent the model from being
> usable and it would disable them in the computed virCPUDef, but this
> won't work in case the definition of the CPU model in QEMU contains more
> features than what we have in cpu_map.xml. We need to count with the
> usability blockers we got from QEMU and explicitly disable all of them
> to make the computed virCPUDef usable.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1464832
> 
> See individual patches for diff from version 1. However, most patches
> were acked in v1 and were not changed.
> 

ACK series (to be official I suppose...)

John

> Jiri Denemark (22):
>   util: Introduce virStringListCopy
>   conf: Add usability blockers to virDomainCapsCPUModel
>   qemu: Store CPU usability blockers in caps cache
>   qemu: Parse unavailable features for CPU models
>   cpu: Use virDomainCapsCPUModelsPtr in cpu driver APIs
>   cpu: Drop unused parameter from cpuDecode
>   conf: Introduce virDomainCapsCPUModelsGet
>   cpu_x86: Move x86FeatureFind* to avoid forward prototypes
>   cpu_x86: Disable blockers from unusable CPU models
>   cputest: Replace bool with cpuTestCPUIDJson enum
>   cputest: Avoid calling json_reformat in cpu-parse.sh
>   cputest: Print correct feature in virCPUUpdateLive test
>   cputest: Test CPU usability blockers
>   cputest: Separate QEMUCaps creation from cpuTestCPUIDJson
>   cputest: Use CPU models from QEMU when available
>   cputest: Add query-cpu-definitions reply for Core-i5-2540M
>   cputest: Add CPUID data for Intel(R) Xeon(R) CPU E7-4830
>   cputest: Add query-cpu-definitions reply for Xeon-E7-4830
>   cputest: Update Xeon-E3-1245 data
>   cputest: Add query-cpu-definitions reply for Xeon-E3-1245
>   cputest: Update Core-i7-2600 data
>   cputest: Make a crippled version of Core-i7-2600
> 
>  src/conf/domain_capabilities.c                     |   48 +-
>  src/conf/domain_capabilities.h                     |   11 +-
>  src/cpu/cpu.c                                      |   89 +-
>  src/cpu/cpu.h                                      |   30 +-
>  src/cpu/cpu_arm.c                                  |    3 +-
>  src/cpu/cpu_ppc64.c                                |   14 +-
>  src/cpu/cpu_x86.c                                  |  109 +-
>  src/libvirt_private.syms                           |    1 +
>  src/libxl/libxl_capabilities.c                     |    2 +-
>  src/libxl/libxl_driver.c                           |    2 +-
>  src/qemu/qemu_capabilities.c                       |  123 +--
>  src/qemu/qemu_capabilities.h                       |    6 +-
>  src/qemu/qemu_capspriv.h                           |    5 +
>  src/qemu/qemu_driver.c                             |    2 +-
>  src/qemu/qemu_monitor.c                            |    2 +
>  src/qemu/qemu_monitor.h                            |    1 +
>  src/qemu/qemu_monitor_json.c                       |   28 +-
>  src/qemu/qemu_process.c                            |    9 +-
>  src/test/test_driver.c                             |    2 +-
>  src/util/virstring.c                               |   37 +
>  src/util/virstring.h                               |    3 +
>  tests/cputest.c                                    |  325 ++++--
>  tests/cputestdata/cpu-cpuid.py                     |   26 +-
>  tests/cputestdata/cpu-gather.sh                    |    1 +
>  tests/cputestdata/cpu-parse.sh                     |    2 +-
>  tests/cputestdata/cpu-reformat.py                  |    9 +
>  tests/cputestdata/x86_64-cpuid-Core-i5-2540M.json  |  362 +++++++
>  .../x86_64-cpuid-Core-i7-2600-disabled.xml         |    1 -
>  .../x86_64-cpuid-Core-i7-2600-enabled.xml          |    1 +
>  .../cputestdata/x86_64-cpuid-Core-i7-2600-json.xml |    1 +
>  ...x86_64-cpuid-Core-i7-2600-xsaveopt-disabled.xml |    6 +
>  .../x86_64-cpuid-Core-i7-2600-xsaveopt-enabled.xml |    8 +
>  .../x86_64-cpuid-Core-i7-2600-xsaveopt-guest.xml   |   25 +
>  .../x86_64-cpuid-Core-i7-2600-xsaveopt-host.xml    |   25 +
>  .../x86_64-cpuid-Core-i7-2600-xsaveopt-json.xml    |   11 +
>  .../x86_64-cpuid-Core-i7-2600-xsaveopt.json        |  615 +++++++++++
>  .../x86_64-cpuid-Core-i7-2600-xsaveopt.xml         |   33 +
>  tests/cputestdata/x86_64-cpuid-Core-i7-2600.json   |  496 ++++++++-
>  tests/cputestdata/x86_64-cpuid-Core-i7-2600.xml    |    6 +-
>  .../x86_64-cpuid-Xeon-E3-1245-disabled.xml         |    1 -
>  .../x86_64-cpuid-Xeon-E3-1245-enabled.xml          |    2 +-
>  .../cputestdata/x86_64-cpuid-Xeon-E3-1245-json.xml |    1 +
>  tests/cputestdata/x86_64-cpuid-Xeon-E3-1245.json   |  712 +++++++++----
>  tests/cputestdata/x86_64-cpuid-Xeon-E3-1245.xml    |    7 +-
>  .../x86_64-cpuid-Xeon-E7-4830-disabled.xml         |    5 +
>  .../x86_64-cpuid-Xeon-E7-4830-enabled.xml          |    8 +
>  .../x86_64-cpuid-Xeon-E7-4830-guest.xml            |   28 +
>  .../cputestdata/x86_64-cpuid-Xeon-E7-4830-host.xml |   29 +
>  .../cputestdata/x86_64-cpuid-Xeon-E7-4830-json.xml |   14 +
>  tests/cputestdata/x86_64-cpuid-Xeon-E7-4830.json   |  657 ++++++++++++
>  tests/cputestdata/x86_64-cpuid-Xeon-E7-4830.xml    |   30 +
>  tests/domaincapstest.c                             |    6 +-
>  tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml   | 1102 ++++++++++++++++++--
>  tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml  |  236 ++++-
>  tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml   |  154 ++-
>  tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   |  154 ++-
>  56 files changed, 4938 insertions(+), 688 deletions(-)
>  create mode 100755 tests/cputestdata/cpu-reformat.py
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt-disabled.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt-enabled.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt-guest.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt-host.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt-json.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt.json
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Core-i7-2600-xsaveopt.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830-disabled.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830-enabled.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830-guest.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830-host.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830-json.xml
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830.json
>  create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-4830.xml
> 




More information about the libvir-list mailing list