This patch series adds support for configuring the PCI high memory MMIO
window size for aarch64 virt machine types using the highmem-mmio-size
feature introduced in QEMU v10.0.0 [1]. It allows users to configure the
size of the high memory MMIO window above 4GB, which can be required to
support PCI passthrough with devices that have a large BARs.
    
The feature is exposed through the existing pcihole64 element associated
with the PCIe root controller:
 
<controller type='pci' index='0' model='pcie-root'>
  <pcihole64 unit='GiB'>512</pcihole64>
</controller>

This existing schema supports the same semantics for the QEMU PC
machine pci-hole64-size parameter and is a natural fit for supporting
the highmem-mmio-size feature on the aarch64 virt machine.

This series is applied over master and depends on the recently merged
patch [2] that added support for QEMU v10.0.0 aarch64 capabilities. 

For your convenience, this series is also available on Github [3].

[1] https://github.com/qemu/qemu/commit/f10104aeae3a17f181d5bb37b7fd7dad7fe86cba
[2] 
https://github.com/nvmochs/libvirt/commit/cea2ee1d28780808172911e5c586478d4ee64a39
 
[3] git fetch https://github.com/nvmochs/libvirt.git 
pci_highmem_mmio_size_pcihole64

Signed-off-by: Matthew R. Ochs <mo...@nvidia.com>

Changelog:
v2
 - Use existing XML scmhema (pcihole64 element) instead of a new one

Matthew R. Ochs (3):
  qemu: Add capability for PCI high memory MMIO size
  qemu: Add command line support for PCI high memory MMIO size
  tests: Add pcihole64 test for virt machine

 src/qemu/qemu_capabilities.c                  |  2 ++
 src/qemu/qemu_capabilities.h                  |  1 +
 src/qemu/qemu_command.c                       | 14 ++++++++-
 src/qemu/qemu_validate.c                      |  8 +++--
 .../caps_10.0.0_aarch64.xml                   |  1 +
 .../pcihole64-virt.aarch64-latest.args        | 31 +++++++++++++++++++
 .../pcihole64-virt.aarch64-latest.xml         | 29 +++++++++++++++++
 tests/qemuxmlconfdata/pcihole64-virt.xml      | 17 ++++++++++
 tests/qemuxmlconftest.c                       |  1 +
 9 files changed, 101 insertions(+), 3 deletions(-)
 create mode 100644 tests/qemuxmlconfdata/pcihole64-virt.aarch64-latest.args
 create mode 100644 tests/qemuxmlconfdata/pcihole64-virt.aarch64-latest.xml
 create mode 100644 tests/qemuxmlconfdata/pcihole64-virt.xml

-- 
2.46.0

Reply via email to