On Fri, Apr 11, 2025 at 08:40:54AM -0700, Matthew R. Ochs via Devel wrote:
> Resending: Series has been re-based over latest upstream.
> 
> This patch series adds support for configuring the PCI high memory MMIO
> window size for aarch64 virt machine types. This feature has been merged
> into the QEMU upstream master branch [1] and will be available in QEMU 10.0.
> It allows users to configure the size of the high memory MMIO window above
> 4GB, which is particularly useful for systems with large amounts of PCI
> memory requirements.
>     
> The feature is exposed through the domain XML as a new PCI feature:
> <features>
>   <pci>
>     <highmem-mmio-size unit='G'>512</highmem-mmio-size>
>   </pci>
> </features>
> 
> When enabled, this configures the size of the PCI high memory MMIO window
> via QEMU's highmem-mmio-size machine property. The feature is only
> available for aarch64 virt machine types and requires QEMU support.

This isn't my area of expertize, but could you give any more background
on why we need to /manually/ set such a property on Arm only ? Is there
something that prevents us making QEMU "do the right thing" ?

As a general rule these kind of obscure tunables are not very user
friendly. Since they are obscure, most mgmt apps developers are not
going to be aware of them, so may well not provide any way to set
them, and even if they can be set, it still requires someone or
something to remember to actually set it... which usually ends up
only happening /after/ the end user has complained their setup
is broken. Overall this leads to a poor user experience IME.

IOW, if there is any plausible way we can make QEMU work suitably
out of the box, that'd be preferrable to requiring a manually set
obscure tunable like this 

> This series depends on [2] and should be applied on top of those patches.
> 
> For your convenience, this series is also available on Github [3].
> 
> [1] 
> https://github.com/qemu/qemu/commit/f10104aeae3a17f181d5bb37b7fd7dad7fe86cba
> [2] 
> https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/Z4NQ3CVQYLNGZRBC35CUHOQ2EXJROPYG/
> [3] git fetch https://github.com/nvmochs/libvirt.git pci_highmem_mmio_size
> 
> Signed-off-by: Matthew R. Ochs <mo...@nvidia.com>
> 
> Matthew R. Ochs (6):
>   domain: Add PCI configuration feature infrastructure
>   schema: Add PCI configuration feature schema
>   conf: Add PCI configuration XML parsing and formatting
>   qemu: Add capability for PCI high memory MMIO size
>   qemu: Add command line support for PCI high memory MMIO size
>   tests: Add tests for machine PCI features
> 
>  src/conf/domain_conf.c                        | 103 ++++++++++++++++++
>  src/conf/domain_conf.h                        |   6 +
>  src/conf/schemas/domaincommon.rng             |   9 ++
>  src/qemu/qemu_capabilities.c                  |   2 +
>  src/qemu/qemu_capabilities.h                  |   1 +
>  src/qemu/qemu_command.c                       |   6 +
>  src/qemu/qemu_validate.c                      |  15 +++
>  .../caps_10.0.0_aarch64.replies               |  10 ++
>  .../caps_10.0.0_aarch64.xml                   |   1 +
>  ...rch64-virt-machine-pci.aarch64-latest.args |  31 ++++++
>  ...arch64-virt-machine-pci.aarch64-latest.xml |  30 +++++
>  .../aarch64-virt-machine-pci.xml              |  20 ++++
>  tests/qemuxmlconftest.c                       |   2 +
>  13 files changed, 236 insertions(+)
>  create mode 100644 
> tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.args
>  create mode 100644 
> tests/qemuxmlconfdata/aarch64-virt-machine-pci.aarch64-latest.xml
>  create mode 100644 tests/qemuxmlconfdata/aarch64-virt-machine-pci.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 :|

Reply via email to