[PATCH v2 00/29] Introduce hyperv host-model mode

Michal Privoznik via Devel posted 29 patches 1 week, 6 days ago
Failed in applying to current master (apply log)
NEWS.rst                                      |  11 +
docs/formatdomain.rst                         |   8 +-
docs/formatdomaincaps.rst                     |   9 +-
src/conf/domain_capabilities.c                |  61 ++++-
src/conf/domain_capabilities.h                |  11 +
src/conf/domain_conf.c                        | 235 ++++++++++--------
src/conf/domain_conf.h                        |  20 +-
src/conf/schemas/domaincaps.rng               |  29 +++
src/conf/schemas/domaincommon.rng             |   3 +
src/conf/virconftypes.h                       |   2 +
src/libvirt_private.syms                      |   5 +
src/libxl/libxl_conf.c                        |  70 +++---
src/libxl/xen_common.c                        |   2 +-
src/lxc/lxc_cgroup.c                          |   2 +-
src/lxc/lxc_controller.c                      |   2 +-
src/qemu/qemu_capabilities.c                  | 107 +++++++-
src/qemu/qemu_capabilities.h                  |   3 +
src/qemu/qemu_command.c                       | 162 ++++++------
src/qemu/qemu_domain.c                        |  16 +-
src/qemu/qemu_process.c                       |  80 +++++-
src/qemu/qemu_validate.c                      |  74 +++++-
src/util/virxml.c                             |  68 +++++
src/util/virxml.h                             |  10 +
.../qemu_10.0.0-q35.x86_64+amdsev.xml         |   7 +
.../domaincapsdata/qemu_10.0.0-q35.x86_64.xml |   7 +
.../qemu_10.0.0-tcg.x86_64+amdsev.xml         |   7 +
.../domaincapsdata/qemu_10.0.0-tcg.x86_64.xml |   7 +
.../qemu_10.0.0.x86_64+amdsev.xml             |   7 +
tests/domaincapsdata/qemu_10.0.0.x86_64.xml   |   7 +
.../qemu_10.1.0-q35.x86_64+inteltdx.xml       |   7 +
.../domaincapsdata/qemu_10.1.0-q35.x86_64.xml |   7 +
.../qemu_10.1.0-tcg.x86_64+inteltdx.xml       |   7 +
.../domaincapsdata/qemu_10.1.0-tcg.x86_64.xml |   7 +
.../qemu_10.1.0.x86_64+inteltdx.xml           |   7 +
tests/domaincapsdata/qemu_10.1.0.x86_64.xml   |   7 +
.../domaincapsdata/qemu_10.2.0-q35.x86_64.xml |   7 +
.../domaincapsdata/qemu_10.2.0-tcg.x86_64.xml |   7 +
tests/domaincapsdata/qemu_10.2.0.x86_64.xml   |   7 +
.../domaincapsdata/qemu_8.0.0-q35.x86_64.xml  |   7 +
.../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml  |   7 +
tests/domaincapsdata/qemu_8.0.0.x86_64.xml    |   7 +
.../domaincapsdata/qemu_8.1.0-q35.x86_64.xml  |   7 +
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml  |   7 +
tests/domaincapsdata/qemu_8.1.0.x86_64.xml    |   7 +
.../domaincapsdata/qemu_8.2.0-q35.x86_64.xml  |   7 +
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml  |   7 +
tests/domaincapsdata/qemu_8.2.0.x86_64.xml    |   7 +
.../domaincapsdata/qemu_9.0.0-q35.x86_64.xml  |   7 +
.../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml  |   7 +
tests/domaincapsdata/qemu_9.0.0.x86_64.xml    |   7 +
.../domaincapsdata/qemu_9.1.0-q35.x86_64.xml  |   7 +
.../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml  |   7 +
tests/domaincapsdata/qemu_9.1.0.x86_64.xml    |   7 +
.../qemu_9.2.0-q35.x86_64+amdsev.xml          |   7 +
.../domaincapsdata/qemu_9.2.0-q35.x86_64.xml  |   7 +
.../qemu_9.2.0-tcg.x86_64+amdsev.xml          |   7 +
.../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml  |   7 +
.../qemu_9.2.0.x86_64+amdsev.xml              |   7 +
tests/domaincapsdata/qemu_9.2.0.x86_64.xml    |   7 +
.../caps_10.0.0_x86_64+amdsev.xml             |   5 +
.../caps_10.0.0_x86_64.xml                    |   5 +
.../caps_10.1.0_x86_64+inteltdx.xml           |   5 +
.../caps_10.1.0_x86_64.xml                    |   5 +
.../caps_10.2.0_x86_64.xml                    |   5 +
.../caps_8.0.0_x86_64.xml                     |   5 +
.../caps_8.1.0_x86_64.xml                     |   5 +
.../caps_8.2.0_x86_64.xml                     |   5 +
.../caps_9.0.0_x86_64.xml                     |   5 +
.../caps_9.1.0_x86_64.xml                     |   5 +
.../caps_9.2.0_x86_64+amdsev.xml              |   5 +
.../caps_9.2.0_x86_64.xml                     |   5 +
.../hyperv-host-model.x86_64-latest.args      |  32 +++
.../hyperv-host-model.x86_64-latest.xml       |  33 +++
tests/qemuxmlconfdata/hyperv-host-model.xml   |  27 ++
.../hyperv-passthrough.x86_64-latest.xml      |   3 +-
.../hyperv-stimer-direct.x86_64-latest.args   |   2 +-
.../hyperv-stimer-direct.x86_64-latest.xml    |   4 +-
.../qemuxmlconfdata/hyperv-stimer-direct.xml  |   4 +-
.../qemuxmlconfdata/hyperv.x86_64-latest.args |   2 +-
.../qemuxmlconfdata/hyperv.x86_64-latest.xml  |   4 +-
tests/qemuxmlconfdata/hyperv.xml              |   4 +-
tests/qemuxmlconftest.c                       |   1 +
82 files changed, 1151 insertions(+), 267 deletions(-)
create mode 100644 tests/qemuxmlconfdata/hyperv-host-model.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/hyperv-host-model.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/hyperv-host-model.xml
[PATCH v2 00/29] Introduce hyperv host-model mode
Posted by Michal Privoznik via Devel 1 week, 6 days ago
v2 of:

https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/DFODXJR46YDTC545NTGJ4ED52D3W3H5E/

diff to v1:
- Validate dependencies across hv-* enlightenment (per QEMU docs),
- Drop introduction of hv-time, since it's already present (as a timer),

I've kept mode='host-model' in domain XML and <defaults/> in domcaps
XML, since no one objected, yet.

Michal Prívozník (29):
  docs: Fix QEMU version wrt hypervclock
  src: Drop needless typecast to virDomainTimerNameType
  conf: Introduce virDomainDefHasTimer()
  qemuxmlconfdata: Adjust hv-stimer related tests
  qemu_validate: Reflect dependencies of hv-synic
  qemu_validate: Reflect dependencies of hv-stimer
  qemu_validate: Reflect dependencies of hv-tlbflush
  qemu_validate: Reflect dependencies of hv-ipi
  qemu_validate: Reflect dependencies of hv-evmcs
  qemu_validate: Reflect dependencies of hv-tlbflush-direct
  NEWS: Document Hyper-V enlightenment validation
  virxml: Introduce virXPathTristateSwitch()
  virxml: Introduce virXPathTristateBool()
  qemu: Use virXPathTristateBool()
  domain_conf: Move format of hyperv features into a function
  domain_conf: Use virXMLFormatElement() to format hyperv features
  qemu_caps: Prefer VIR_DOMAIN_CAPS_ENUM_IS_SET()
  qemu_command: Move hyperv cmd line generation into a function
  qemu_command: Prefer virBufferAddLit() in
    qemuBuildCpuHypervCommandLine()
  libxl: Simplify setting HyperV features
  conf: More hyperv related members into a single struct
  docs: Drop remark on now unsupported version of QEMU
  conf: Report default hyperv values in domain capabilities
  qemu_capabilities: Format and parse new hyperv domcaps members
  qemu_capabilities: Fetch new hyperv domcaps
  qemu_caps: Introduce virQEMUCapsGetHypervCapabilities()
  conf: Introduce hyperv host-model mode
  qemu_process: Populate hyperv features for host-model
  NEWS: Document new host-model hyperv mode

 NEWS.rst                                      |  11 +
 docs/formatdomain.rst                         |   8 +-
 docs/formatdomaincaps.rst                     |   9 +-
 src/conf/domain_capabilities.c                |  61 ++++-
 src/conf/domain_capabilities.h                |  11 +
 src/conf/domain_conf.c                        | 235 ++++++++++--------
 src/conf/domain_conf.h                        |  20 +-
 src/conf/schemas/domaincaps.rng               |  29 +++
 src/conf/schemas/domaincommon.rng             |   3 +
 src/conf/virconftypes.h                       |   2 +
 src/libvirt_private.syms                      |   5 +
 src/libxl/libxl_conf.c                        |  70 +++---
 src/libxl/xen_common.c                        |   2 +-
 src/lxc/lxc_cgroup.c                          |   2 +-
 src/lxc/lxc_controller.c                      |   2 +-
 src/qemu/qemu_capabilities.c                  | 107 +++++++-
 src/qemu/qemu_capabilities.h                  |   3 +
 src/qemu/qemu_command.c                       | 162 ++++++------
 src/qemu/qemu_domain.c                        |  16 +-
 src/qemu/qemu_process.c                       |  80 +++++-
 src/qemu/qemu_validate.c                      |  74 +++++-
 src/util/virxml.c                             |  68 +++++
 src/util/virxml.h                             |  10 +
 .../qemu_10.0.0-q35.x86_64+amdsev.xml         |   7 +
 .../domaincapsdata/qemu_10.0.0-q35.x86_64.xml |   7 +
 .../qemu_10.0.0-tcg.x86_64+amdsev.xml         |   7 +
 .../domaincapsdata/qemu_10.0.0-tcg.x86_64.xml |   7 +
 .../qemu_10.0.0.x86_64+amdsev.xml             |   7 +
 tests/domaincapsdata/qemu_10.0.0.x86_64.xml   |   7 +
 .../qemu_10.1.0-q35.x86_64+inteltdx.xml       |   7 +
 .../domaincapsdata/qemu_10.1.0-q35.x86_64.xml |   7 +
 .../qemu_10.1.0-tcg.x86_64+inteltdx.xml       |   7 +
 .../domaincapsdata/qemu_10.1.0-tcg.x86_64.xml |   7 +
 .../qemu_10.1.0.x86_64+inteltdx.xml           |   7 +
 tests/domaincapsdata/qemu_10.1.0.x86_64.xml   |   7 +
 .../domaincapsdata/qemu_10.2.0-q35.x86_64.xml |   7 +
 .../domaincapsdata/qemu_10.2.0-tcg.x86_64.xml |   7 +
 tests/domaincapsdata/qemu_10.2.0.x86_64.xml   |   7 +
 .../domaincapsdata/qemu_8.0.0-q35.x86_64.xml  |   7 +
 .../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml  |   7 +
 tests/domaincapsdata/qemu_8.0.0.x86_64.xml    |   7 +
 .../domaincapsdata/qemu_8.1.0-q35.x86_64.xml  |   7 +
 .../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml  |   7 +
 tests/domaincapsdata/qemu_8.1.0.x86_64.xml    |   7 +
 .../domaincapsdata/qemu_8.2.0-q35.x86_64.xml  |   7 +
 .../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml  |   7 +
 tests/domaincapsdata/qemu_8.2.0.x86_64.xml    |   7 +
 .../domaincapsdata/qemu_9.0.0-q35.x86_64.xml  |   7 +
 .../domaincapsdata/qemu_9.0.0-tcg.x86_64.xml  |   7 +
 tests/domaincapsdata/qemu_9.0.0.x86_64.xml    |   7 +
 .../domaincapsdata/qemu_9.1.0-q35.x86_64.xml  |   7 +
 .../domaincapsdata/qemu_9.1.0-tcg.x86_64.xml  |   7 +
 tests/domaincapsdata/qemu_9.1.0.x86_64.xml    |   7 +
 .../qemu_9.2.0-q35.x86_64+amdsev.xml          |   7 +
 .../domaincapsdata/qemu_9.2.0-q35.x86_64.xml  |   7 +
 .../qemu_9.2.0-tcg.x86_64+amdsev.xml          |   7 +
 .../domaincapsdata/qemu_9.2.0-tcg.x86_64.xml  |   7 +
 .../qemu_9.2.0.x86_64+amdsev.xml              |   7 +
 tests/domaincapsdata/qemu_9.2.0.x86_64.xml    |   7 +
 .../caps_10.0.0_x86_64+amdsev.xml             |   5 +
 .../caps_10.0.0_x86_64.xml                    |   5 +
 .../caps_10.1.0_x86_64+inteltdx.xml           |   5 +
 .../caps_10.1.0_x86_64.xml                    |   5 +
 .../caps_10.2.0_x86_64.xml                    |   5 +
 .../caps_8.0.0_x86_64.xml                     |   5 +
 .../caps_8.1.0_x86_64.xml                     |   5 +
 .../caps_8.2.0_x86_64.xml                     |   5 +
 .../caps_9.0.0_x86_64.xml                     |   5 +
 .../caps_9.1.0_x86_64.xml                     |   5 +
 .../caps_9.2.0_x86_64+amdsev.xml              |   5 +
 .../caps_9.2.0_x86_64.xml                     |   5 +
 .../hyperv-host-model.x86_64-latest.args      |  32 +++
 .../hyperv-host-model.x86_64-latest.xml       |  33 +++
 tests/qemuxmlconfdata/hyperv-host-model.xml   |  27 ++
 .../hyperv-passthrough.x86_64-latest.xml      |   3 +-
 .../hyperv-stimer-direct.x86_64-latest.args   |   2 +-
 .../hyperv-stimer-direct.x86_64-latest.xml    |   4 +-
 .../qemuxmlconfdata/hyperv-stimer-direct.xml  |   4 +-
 .../qemuxmlconfdata/hyperv.x86_64-latest.args |   2 +-
 .../qemuxmlconfdata/hyperv.x86_64-latest.xml  |   4 +-
 tests/qemuxmlconfdata/hyperv.xml              |   4 +-
 tests/qemuxmlconftest.c                       |   1 +
 82 files changed, 1151 insertions(+), 267 deletions(-)
 create mode 100644 tests/qemuxmlconfdata/hyperv-host-model.x86_64-latest.args
 create mode 100644 tests/qemuxmlconfdata/hyperv-host-model.x86_64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/hyperv-host-model.xml

-- 
2.49.1

Re: [PATCH v2 00/29] Introduce hyperv host-model mode
Posted by Ján Tomko via Devel 6 days, 17 hours ago
On a Wednesday in 2025, Michal Privoznik via Devel wrote:
>v2 of:
>
>https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/DFODXJR46YDTC545NTGJ4ED52D3W3H5E/
>
>diff to v1:
>- Validate dependencies across hv-* enlightenment (per QEMU docs),
>- Drop introduction of hv-time, since it's already present (as a timer),
>
>I've kept mode='host-model' in domain XML and <defaults/> in domcaps
>XML, since no one objected, yet.
>
>Michal Prívozník (29):
>  docs: Fix QEMU version wrt hypervclock

Except for 1/29

>  src: Drop needless typecast to virDomainTimerNameType
>  conf: Introduce virDomainDefHasTimer()
>  qemuxmlconfdata: Adjust hv-stimer related tests
>  qemu_validate: Reflect dependencies of hv-synic
>  qemu_validate: Reflect dependencies of hv-stimer
>  qemu_validate: Reflect dependencies of hv-tlbflush
>  qemu_validate: Reflect dependencies of hv-ipi
>  qemu_validate: Reflect dependencies of hv-evmcs
>  qemu_validate: Reflect dependencies of hv-tlbflush-direct
>  NEWS: Document Hyper-V enlightenment validation
>  virxml: Introduce virXPathTristateSwitch()
>  virxml: Introduce virXPathTristateBool()
>  qemu: Use virXPathTristateBool()
>  domain_conf: Move format of hyperv features into a function
>  domain_conf: Use virXMLFormatElement() to format hyperv features
>  qemu_caps: Prefer VIR_DOMAIN_CAPS_ENUM_IS_SET()
>  qemu_command: Move hyperv cmd line generation into a function
>  qemu_command: Prefer virBufferAddLit() in
>    qemuBuildCpuHypervCommandLine()
>  libxl: Simplify setting HyperV features
>  conf: More hyperv related members into a single struct
>  docs: Drop remark on now unsupported version of QEMU
>  conf: Report default hyperv values in domain capabilities
>  qemu_capabilities: Format and parse new hyperv domcaps members
>  qemu_capabilities: Fetch new hyperv domcaps
>  qemu_caps: Introduce virQEMUCapsGetHypervCapabilities()
>  conf: Introduce hyperv host-model mode
>  qemu_process: Populate hyperv features for host-model
>  NEWS: Document new host-model hyperv mode
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano