RE: [PATCH v2 04/19] iommufd: Allow pt_id to carry viommu_id for IOMMU_HWPT_ALLOC

Tian, Kevin
2024-09-27T00:44:59Z

> From: Nicolin Chen <nicolinc@nvidia.com>
> Sent: Friday, September 27, 2024 4:11 AM
>
> On Thu, Sep 26, 2024 at 04:50:46PM +0800, Yi Liu wrote:
> > On 2024/8/28 00:59, Nicolin Chen wrote:
> > > Now a VIOMMU can wrap a shareable nested parent HWPT. So, it can act
> like
> > > a nested parent HWPT to allocate a nested HWPT.
> > >
> > > Support that in the IOMMU_HWPT_ALLOC ioctl handler, and update its
> kdoc.
> > >
> > > Also, associate a viommu to an allocating nested HWPT.
> >
> > it still not quite clear to me what vIOMMU obj stands for. Here, it is a
> > wrapper of s2 hpwt IIUC. But in the cover letter, vIOMMU obj can instanced
> > per the vIOMMU units in VM.
>
> Yea, the implementation in this version is merely a wrapper. I
> had a general introduction of vIOMMU in the other reply. And I
> will put something similar in the next version of the series,
> so the idea would be bigger than a wrapper.
>
> > Does it mean each vIOMMU of VM can only have
> > one s2 HWPT?
>
> Giving some examples here:
> - If a VM has 1 vIOMMU, there will be 1 vIOMMU object in the
> kernel holding one S2 HWPT.
> - If a VM has 2 vIOMMUs, there will be 2 vIOMMU objects in the
> kernel that can hold two different S2 HWPTs, or share one S2
> HWPT (saving memory).
>

this is not consistent with previous discussion.

even for 1 vIOMMU per VM there could be multiple vIOMMU objects
created in the kernel in case the devices connected to the VM-visible
vIOMMU locate behind different physical SMMUs.

we don't expect one vIOMMU object to span multiple physical ones.