On Fri, May 09, 2025 at 07:29:04PM +0000, Matt Ochs wrote:
> > On May 9, 2025, at 9:59 AM, Daniel P. Berrangé <berra...@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>
> > 
> > As a schema design comment. IIUC, the MMIO size we're configuring
> > is conceptually a characteristic associated with the PCI(e) host
> > and the memory layout it defines for PCI(e) devices to use.
> 
> Correct.
> 
> > Checking through our schema I find we already have support
> > for
> > 
> >    <controller type='pci' index='0' model='pci-root'>
> >      <pcihole64 unit='KiB'>1048576</pcihole64>
> >    </controller>
> > 
> > this makes me think that we should model this new attribute
> > in a similar way, eg so we can support:
> > 
> >    <controller type='pci' index='0' model='pci-root'>
> >      <pcihole64 unit='KiB'>1048576</pcihole64>
> >      <pcimmio64 unit='TiB'>2</pcimmio64>
> >    </controller>
> > 
> > (pci-root or pcie-root are interchangable).
> > 
> > This 'pcimmio64' value can then be mapped to whatever hypervisor
> > or architecture specific setting is appropriate, avoiding exposing
> > the QEMU arm 'highmem-mmio-size' naming convention.
> 
> Thanks for the feedback, this sounds like a better approach.
> 
> Would it make sense to just use the existing pcihole64 since [I think]
> it more or less represents the same concept (setting 64bit MMIO window)?

I'm not sure. I've been struggling to reproduce an effect wit hseting
the existing  -global q35-pcihost.pci-hole64-size=1048576K settings
on x86, and also wondering how it interacts with the previously
mentioned  -fw_cfg name=opt/ovmf/X-PciMmio64Mb,string=262144

Possibly the former only works with SeaBIOS, and the latter only
works with EDK2, but I've not figured out how to prove this.

I'm curious if there's a good way to identify the guest memory
map impact, as I'm not finding a clear marker in 'dmesg' that
correlates ?

> Or perhaps that would be too messy or x86-centric and it’s better to go
> with what you proposed (pcimmio64)?

If the 'pcihole64' setting really is setting the MMIO64 window, then it
would be preferrable to re-use the existing setting field.

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