All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/8] iommufd: Destroy vdevice on device unbind
@ 2025-07-15  6:32 Xu Yilun
  2025-07-15  6:32 ` [PATCH v5 1/8] iommufd/viommu: Roll back to use iommufd_object_alloc() for vdevice Xu Yilun
                   ` (8 more replies)
  0 siblings, 9 replies; 21+ messages in thread
From: Xu Yilun @ 2025-07-15  6:32 UTC (permalink / raw)
  To: jgg, jgg, kevin.tian, will, aneesh.kumar
  Cc: iommu, linux-kernel, joro, robin.murphy, shuah, nicolinc, aik,
	dan.j.williams, baolu.lu, yilun.xu

It is to solve the lifecycle issue that vdevice may outlive idevice. It
is a prerequisite for TIO, to ensure extra secure configurations (e.g.
TSM Bind/Unbind) against vdevice could be rolled back on idevice unbind,
so that VFIO could still work on the physical device without surprise.

Changelog:
v5:
 - Further rebase to iommufd for-next 601b1d0d9395
 - Keep the xa_empty() check in iommufd_fops_release(), update comments
 - Move the *idev next to *viommu for struct iommufd_vdevice
 - Update the description about IOMMUFD_CMD_VDEVICE_ALLOC for lifecycle
 - Remove Baolu's tag for patch 4 because of big changes since v3
 - Add changelog about idev->destroying
 - Adjust line wrappings for tools/testing/selftests/iommu/iommufd.c
 - Clarify that no testing for tombstoned ID repurposing.
 - Add review tags.

v4: https://lore.kernel.org/linux-iommu/20250709040234.1773573-1-yilun.xu@linux.intel.com/
 - Rebase to iommufd for-next.
 - A new patch to roll back iommufd_object_alloc_ucmd() for vdevice.
 - Fix the mistake trying to xa_destroy ictx->groups on
   iommufd_fops_release().
 - Move 'empty' flag inside destroy loop for iommufd_fops_release().
 - Refactor vdev/idev destroy syncing.
   - Drop the iommufd_vdevice_abort() reentrant idea.
   - A new patch that adds pre_destroy() op.
   - Hold short term reference during the whole vdevice's lifecycle.
   - Wait on short term reference on idev's pre_destroy().
   - Add a 'destroying' flag for idev to prevent new reference after
     pre_destroy().
 - Rephrase/fix some comments.
 - Add review tags.

v3: https://lore.kernel.org/linux-iommu/20250627033809.1730752-1-yilun.xu@linux.intel.com/
 - No bother clean each tombstone in iommufd_fops_release().
 - Drop vdev->ictx initialization fix patch.
 - Optimize control flow in iommufd_device_remove_vdev().
 - Make iommufd_vdevice_abort() reentrant.
 - Call iommufd_vdevice_abort() directly instead of waiting for it.
 - Rephrase/fix some comments.
 - A new patch to remove vdev->dev.
 - A new patch to explicitly skip existing viommu tests for no_iommu.
 - Also skip vdevice tombstone test for no_iommu.
 - Allow me to add SoB from Aneesh.

v2: https://lore.kernel.org/linux-iommu/20250623094946.1714996-1-yilun.xu@linux.intel.com/

v1/rfc: https://lore.kernel.org/linux-iommu/20250610065146.1321816-1-aneesh.kumar@kernel.org/

The series is based on iommufd for-next


Xu Yilun (8):
  iommufd/viommu: Roll back to use iommufd_object_alloc() for vdevice
  iommufd: Add iommufd_object_tombstone_user() helper
  iommufd: Add a pre_destroy() op for objects
  iommufd: Destroy vdevice on idevice destroy
  iommufd/vdevice: Remove struct device reference from struct vdevice
  iommufd/selftest: Explicitly skip tests for inapplicable variant
  iommufd/selftest: Add coverage for vdevice tombstone
  iommufd: Rename some shortterm-related identifiers

 .../iommu/arm/arm-smmu-v3/tegra241-cmdqv.c    |   2 +-
 drivers/iommu/iommufd/device.c                |  51 +++
 drivers/iommu/iommufd/driver.c                |   4 +-
 drivers/iommu/iommufd/iommufd_private.h       |  49 ++-
 drivers/iommu/iommufd/main.c                  |  69 +++-
 drivers/iommu/iommufd/viommu.c                |  69 +++-
 include/linux/iommufd.h                       |  10 +-
 include/uapi/linux/iommufd.h                  |   5 +
 tools/testing/selftests/iommu/iommufd.c       | 379 +++++++++---------
 9 files changed, 407 insertions(+), 231 deletions(-)


base-commit: 601b1d0d9395c711383452bd0d47037afbbb4bcf
-- 
2.25.1


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2025-07-16  6:32 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-15  6:32 [PATCH v5 0/8] iommufd: Destroy vdevice on device unbind Xu Yilun
2025-07-15  6:32 ` [PATCH v5 1/8] iommufd/viommu: Roll back to use iommufd_object_alloc() for vdevice Xu Yilun
2025-07-15  6:32 ` [PATCH v5 2/8] iommufd: Add iommufd_object_tombstone_user() helper Xu Yilun
2025-07-15  6:32 ` [PATCH v5 3/8] iommufd: Add a pre_destroy() op for objects Xu Yilun
2025-07-15 13:19   ` Jason Gunthorpe
2025-07-15  6:32 ` [PATCH v5 4/8] iommufd: Destroy vdevice on idevice destroy Xu Yilun
2025-07-15 13:37   ` Jason Gunthorpe
2025-07-15  6:32 ` [PATCH v5 5/8] iommufd/vdevice: Remove struct device reference from struct vdevice Xu Yilun
2025-07-15 13:38   ` Jason Gunthorpe
2025-07-15 18:56   ` Nicolin Chen
2025-07-16  6:09     ` Xu Yilun
2025-07-15 20:44   ` kernel test robot
2025-07-15  6:32 ` [PATCH v5 6/8] iommufd/selftest: Explicitly skip tests for inapplicable variant Xu Yilun
2025-07-15 19:13   ` Nicolin Chen
2025-07-16  6:23     ` Xu Yilun
2025-07-15  6:32 ` [PATCH v5 7/8] iommufd/selftest: Add coverage for vdevice tombstone Xu Yilun
2025-07-15 19:03   ` Nicolin Chen
2025-07-15  6:32 ` [PATCH v5 8/8] iommufd: Rename some shortterm-related identifiers Xu Yilun
2025-07-15 13:39   ` Jason Gunthorpe
2025-07-15 19:13   ` Nicolin Chen
2025-07-15 19:33 ` [PATCH v5 0/8] iommufd: Destroy vdevice on device unbind Nicolin Chen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.