[PATCH v3 0/3] Add virt machine support for configuring PCI high memory MMIO size

Matthew R. Ochs via Devel posted 3 patches 7 months, 1 week ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/20250515144807.2744583-1-mochs@nvidia.com
src/qemu/qemu_capabilities.c                  |  2 ++
src/qemu/qemu_capabilities.h                  |  1 +
src/qemu/qemu_command.c                       | 14 ++++++++-
src/qemu/qemu_validate.c                      |  4 ++-
.../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, 98 insertions(+), 2 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
[PATCH v3 0/3] Add virt machine support for configuring PCI high memory MMIO size
Posted by Matthew R. Ochs via Devel 7 months, 1 week ago
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 <mochs@nvidia.com>

Changelog:
v3
 - Patch 2 updates:
   + Use positive check in qemuBuildGlobalControllerCommandLine
   + Only allow pcihole64 for PCIe root controllers with arm virt
 - Added review tags from Daniel P. Berrangé for patch 1 and 3
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                      |  4 ++-
 .../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, 98 insertions(+), 2 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
Re: [PATCH v3 0/3] Add virt machine support for configuring PCI high memory MMIO size
Posted by Daniel P. Berrangé via Devel 7 months ago
I have pushed this series

On Thu, May 15, 2025 at 07:48:07AM -0700, Matthew R. Ochs wrote:
> 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 <mochs@nvidia.com>
> 
> Changelog:
> v3
>  - Patch 2 updates:
>    + Use positive check in qemuBuildGlobalControllerCommandLine
>    + Only allow pcihole64 for PCIe root controllers with arm virt
>  - Added review tags from Daniel P. Berrangé for patch 1 and 3
> 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                      |  4 ++-
>  .../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, 98 insertions(+), 2 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
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
Re: [PATCH v3 0/3] Add virt machine support for configuring PCI high memory MMIO size
Posted by Matt Ochs via Devel 7 months ago
> On May 16, 2025, at 6:47 AM, Daniel P. Berrangé <berrange@redhat.com> wrote:
> 
> I have pushed this series
> 

Thanks Daniel!