[libvirt] [PATCH 00/36] CPU driver enhancements and MSR features

Jiri Denemark jdenemar at redhat.com
Mon Apr 8 08:42:04 UTC 2019


In addition to usual CPUID bits, some CPU features started to be
reported in IA32_ARCH_CAPABILITIES MSR. This series adds support for
such CPU features.

However, the last patch which actually adds definitions for some MSR
features to the cpu_map should not be pushed yet as the QEMU interface
for MSR features is not complete yet. If a domain with some MSR features
enabled would be started, all of them would be marked as disabled in the
live domain configuration (even though they were actually enabled by
QEMU) and they would disappear during migration.

Jiri Denemark (36):
  domaincapstest: Test QEMU 3.1.0
  cputest: Add data for Intel(R) Xeon(R) Platinum 8268 CPU
  cpu_map: Add Cascadelake-Server CPU model
  cpu_x86: Do not cache microcode version
  cpu_x86: Require <cpuid> within <feature> in CPU map
  cpu_x86: Introduce virCPUx86DataItem container struct
  cpu_x86: Rename virCPUx86Vendor.cpuid
  cpu_x86: Rename virCPUx86DataItem variables
  cpu_x86: Rename x86DataCpuidNext function
  cpu_x86: Rename x86DataCpuid
  cpu_x86: Rename virCPUx86CPUIDSorter
  cpu_x86: Rename virCPUx86DataAddCPUIDInt
  cpu_x86: Rename virCPUx86DataAddCPUID
  cpu_x86: Rename virCPUx86VendorToCPUID
  cpu_x86: Simplify x86DataAdd
  cpu_x86: Introduce virCPUx86DataCmp
  cpu_x86: Make x86cpuidSetBits more general
  cpu_x86: Make x86cpuidClearBits more general
  cpu_x86: Make x86cpuidAndBits more general
  cpu_x86: Make x86cpuidMatchMasked more general
  cpu_x86: Make x86cpuidMatch more general
  cpu_x86: Store virCPUx86DataItem content in union
  cpu_x86: Add support for storing MSR features in CPU map
  cpu_x86: Move *CheckFeature functions
  cputest: Drop support for old QEMU from cpu-parse.sh
  cputest: Generalize function names in cpu-cpuid.py
  cputest: Fix comparison in checkCPUIDFeature in cpu-cpuid.py
  cputest: Rename in_e[ac]x as e[ac]x_in in cpu-cpuid.py
  cputest: Prepare cpu-cpuid.py for MSR features
  cputest: Generalize feature parsing in cpu-cpuid.py
  cputest: Add support for MSR features to cpu-gather.sh
  cputest: Add support for MSR features to cpu-parse.sh
  cputest: Add support for MSR features to cpu-cpuid.py
  vircpuhost: Add support for reading MSRs
  cpu_x86: Read CPU features from IA32_ARCH_CAPABILITIES MSR
  cpu_map: Introduce IA32_ARCH_CAPABILITIES MSR features

 src/cpu/cpu_x86.c                             | 807 ++++++++++++------
 src/cpu/cpu_x86.h                             |   4 +-
 src/cpu/cpu_x86_data.h                        |  27 +-
 src/cpu_map/index.xml                         |   1 +
 src/cpu_map/x86_Cascadelake-Server.xml        |  82 ++
 src/cpu_map/x86_features.xml                  |  17 +
 src/libvirt_private.syms                      |   3 +-
 src/libxl/libxl_capabilities.c                |   9 +-
 src/qemu/qemu_monitor_json.c                  |   7 +-
 src/util/virhostcpu.c                         |  80 ++
 src/util/virhostcpu.h                         |   3 +
 tests/cputest.c                               |   1 +
 tests/cputestdata/cpu-cpuid.py                | 414 +++------
 tests/cputestdata/cpu-gather.sh               |  49 +-
 tests/cputestdata/cpu-parse.sh                |  12 +-
 .../x86_64-cpuid-Core-i7-7600U-enabled.xml    |   1 +
 .../x86_64-cpuid-Core-i7-7600U-json.xml       |   1 +
 ...6_64-cpuid-Xeon-Platinum-8268-disabled.xml |   7 +
 ...86_64-cpuid-Xeon-Platinum-8268-enabled.xml |   9 +
 .../x86_64-cpuid-Xeon-Platinum-8268-guest.xml |  35 +
 .../x86_64-cpuid-Xeon-Platinum-8268-host.xml  |  36 +
 .../x86_64-cpuid-Xeon-Platinum-8268-json.xml  |  13 +
 .../x86_64-cpuid-Xeon-Platinum-8268.json      | 702 +++++++++++++++
 .../x86_64-cpuid-Xeon-Platinum-8268.sig       |   4 +
 .../x86_64-cpuid-Xeon-Platinum-8268.xml       |  55 ++
 .../qemu_3.1.0.x86_64.xml                     | 155 ++++
 .../qemu_4.0.0.x86_64.xml                     |   2 +
 tests/domaincapstest.c                        |   4 +
 28 files changed, 1954 insertions(+), 586 deletions(-)
 create mode 100644 src/cpu_map/x86_Cascadelake-Server.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-disabled.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-enabled.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-json.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268.json
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268.sig
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268.xml
 create mode 100644 tests/domaincapsschemadata/qemu_3.1.0.x86_64.xml

-- 
2.21.0




More information about the libvir-list mailing list