> From: Nicolin Chen <nicolinc@xxxxxxxxxx> > Sent: Tuesday, February 14, 2023 6:54 PM > > On Mon, Feb 13, 2023 at 10:49:34AM -0400, Jason Gunthorpe wrote: > > On Sun, Feb 12, 2023 at 11:48:30PM -0800, Nicolin Chen wrote: > > > > > What about point 1? If dev2 and dev3 are already replaced when > > > doing iommu_group_replace_domain() on dev1, their idev objects > > > still have the old hwpt/iopt until user space does another two > > > IOCTLs on them, right? > > > > We have a complicated model for multi-device groups... > > > > The first device in the group to change domains must move all the > > devices in the group > > > > But userspace is still expected to run through and change all the > > other devices > > > > So replace should be a NOP if the group is already linked to the right > > domain. > > > > This patch needs to make sure that incosistency in the view betwen the > > iommu_group and the iommufd model doesn't cause a functional > > problem. > > Yea, I was thinking that we'd need to block any access to the > idev->hwpt of a pending device's, before the kernel finishes > the "NOP" IOCTL from userspace, maybe with a helper: > (iommu_get_domain_for_dev(idev->dev) != idev->hwpt->domain) > I didn't see what would be broken w/o such blocking measure. Can you elaborate?