Hi Daniel,
Thanks for your feedback!
On May 7, 2025, at 11:51 AM, Daniel P. Berrangé
<berrange(a)redhat.com> wrote:
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" ?
The highmem-mmio-size property is only available for the arm64 “virt”
machine. It is only needed when a VM configuration will exceed the 512G
default for PCI highmem region. There are some GPU devices that exist
today that have very large BARs and require more than 512G when
multiple devices are passed through to a VM.
Regarding making QEMU “do the right thing”, we could add logic to
libvirt to detect when these known devices are present in the VM
configuration and automatically set an appropriate size for the
parameter. However I was under the impression that type of solution
was preferred to be handled at the mgmt app layer.
-matt