> From: Nicolin Chen <nicol...@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.