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 :|