RE: [RFC PATCH 0/5] qemu: Route hostdevs to multiple nested SMMUs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Nathan Chen <nathanc@xxxxxxxxxx>
> Sent: Thursday, January 30, 2025 5:52 PM
> To: Daniel P. Berrangé <berrange@xxxxxxxxxx>
> Cc: devel@xxxxxxxxxxxxxxxxx; Nicolin Chen <nicolinc@xxxxxxxxxx>; Shameerali
> Kolothum Thodi <shameerali.kolothum.thodi@xxxxxxxxxx>
> Subject: Re: [RFC PATCH 0/5] qemu: Route hostdevs to multiple nested
> SMMUs
> 
> 
> >> Hi Daniel,
> >>
> >>> Top level libvirt device representation in XML is based on the
> >>> device *class*, not the specific device impl. Adding a
> >>> <nestedSmmuv3> device type XML element in libvirt is totally
> >>> inappropriate. Any configuration must be done beneath the <iommu>
> element.
> >> Would keeping track of PXB <=> host SMMU nodes be better
> represented
> >> with a <nestedSmmuv3> PXB attribute like below, when the
> >> "nestedSmmuv3" IOMMU model is specified? This method would be
> >> simplest IMO because we could omit keeping track of the nestedSmmuv3
> >> bus number in the virDomainDef struct since its association with a PXB
> controller would already be baked-in.
> >>
> >> <devices>
> >>    ...
> >>    <controller type='pci' index='1' model='pcie-expander-bus'>
> >>      <model name='pxb-pcie'/>
> >>      <target busNr='254'/>
> >>      <nestedSmmuv3>smmu3.0x0000000012000000</nestedSmmuv3>
> >>      <address type='pci' domain='0x0000' bus='0x00' slot='0x01'
> function='0x0'/>
> >>    </controller>
> >>    ...
> >>    <iommu model='nestedSmmuv3'/>
> >> </devices>
> >
> > The '<nestedSmmuv3>smmu3.0x0000000012000000</nestedSmmuv3>' bit
> is
> > also wierd, because it never appears in the QEMU command line at all.
> > Some kind of implicit association seems to be taking place behind the
> > scenes and that is unlikely to be a desirable thing. We need to model
> > associations between devices explicitly and directly pass this on to
> > QEMU.
> >
> > If the nestedSmmuv3 is assocaited with a host SMMUv3 device, then that
> > association should be represented on the <iommu> device, and this
> > mapping passed to QEMU.
> 
> The '<nestedSmmuv3>smmu3.0x0000000012000000</nestedSmmuv3>' bit
> will be moved to the <iommu> definition in the next revision.
> 
> I agree that explicitly specifying the host SMMU node name in QEMU would
> make the host to guest SMMU association more clear. But the current
> QEMU implementation appears more flexible in allowing us to create
> nestedSmmuv3 instances and then imply the association to a host SMMU
> node based on the PCIe topology isolating devices under different PXBs.
> I think we should discuss this further on the QEMU thread with Shameer
> before he sends out the second revision of his series, then adjust the libvirt
> implementation based on the next QEMU revision.

I just replied to Daniel's same comment on that thread .Sorry forgot to CC you.
It's here,
https://lore.kernel.org/qemu-devel/7ecabe74e0514367baf28d67675e5db8@xxxxxxxxxx/

Thanks,
Shameer. 




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux