[libvirt] [PATCH 0/3 for 3.2.0] Fix host-model CPU with non-migratable features

Jiri Denemark jdenemar at redhat.com
Wed Mar 29 14:53:16 UTC 2017


This series fixes a regression in libvirt which would break domains with
a CPU defined as, for example:

    <cpu mode='host-model'>
      <feature name='invtsc' policy='require'/>
    </cpu>

Such domains would work just fine with libvirt <= 3.1.0 or QEMU < 2.9.0,
but they would be broken with current libvirt and QEMU >= 2.9.0.

This is because we started asking QEMU for CPU features supported by the
host CPU, by which we think all non-migratable features are not
supported because QEMU filters them out by default.

This series changes our code to properly detect even non-migratable
features, but still leaves the piece which relies on our cpu_map.xml to
filter them when someone asks for just <cpu mode='host-model'/>. Patches
which will use the data provided by QEMU instead of our static database
in cpu_map.xml will be sent soon, since they are not required to fix the
regression.

Jiri Denemark (3):
  qemuMonitorCPUModelInfo: Add support for non-migratable features
  qemu: Check migratable host CPU features
  qemu: Check non-migratable host CPU features

 src/qemu/qemu_capabilities.c                       |  96 ++-
 src/qemu/qemu_monitor.c                            |   9 +-
 src/qemu/qemu_monitor.h                            |   3 +
 src/qemu/qemu_monitor_json.c                       |  11 +
 src/qemu/qemu_monitor_json.h                       |   3 +-
 tests/cputest.c                                    |   2 +-
 tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml   |   1 +
 .../qemucapabilitiesdata/caps_2.8.0.s390x.replies  |   8 +
 tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml    |   2 +-
 .../qemucapabilitiesdata/caps_2.9.0.x86_64.replies | 840 +++++++++++++++++++++
 tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml   | 368 ++++-----
 11 files changed, 1148 insertions(+), 195 deletions(-)

-- 
2.12.2




More information about the libvir-list mailing list