[0/6] iommufd: Add iommu capability reporting

Message ID 20230209041642.9346-1-yi.l.liu@intel.com
Headers
Series iommufd: Add iommu capability reporting |

Message

Yi Liu Feb. 9, 2023, 4:16 a.m. UTC
  iommufd gives userspace the capabilty to manipulating iommu subsytem.
e.g. DMA map/unmap etc. In the near future, it will also support iommu
nested translation. Different platform vendors have different implementation
for the nested translation. So before set up nested translation, userspace
needs to know the hardware iommu capabilities. For example, Intel platform
supports guest I/O page table to be the first stage translation structure.

This series reports the iommu capability for a given iommufd_device which
has been bound to iommufd. It is a preparation work for nested translation
support[1]. In this series, Intel VT-d capability reporting is added. Other
vendors may add their own reporting based on this series.

[1] https://github.com/yiliu1765/iommufd/tree/iommufd_nesting_vtd_v1

Regards,
	Yi Liu

Lu Baolu (2):
  iommu: Add new iommu op to get iommu hardware information
  iommu/vt-d: Implement hw_info for iommu capability query

Nicolin Chen (2):
  iommufd/selftest: Set iommu_device for mock_device
  iommufd/selftest: Add coverage for IOMMU_DEVICE_GET_INFO ioctl

Yi Liu (2):
  iommufd: Add IOMMU_DEVICE_GET_INFO
  iommufd/device: Add mock_device support in iommufd_device_get_info()

 drivers/iommu/intel/iommu.c                   | 19 ++++
 drivers/iommu/intel/iommu.h                   |  1 +
 drivers/iommu/iommufd/device.c                | 91 +++++++++++++++++++
 drivers/iommu/iommufd/iommufd_private.h       |  2 +
 drivers/iommu/iommufd/iommufd_test.h          | 15 +++
 drivers/iommu/iommufd/main.c                  |  3 +
 drivers/iommu/iommufd/selftest.c              | 26 ++++++
 include/linux/iommu.h                         |  8 ++
 include/uapi/linux/iommufd.h                  | 63 +++++++++++++
 tools/testing/selftests/iommu/iommufd.c       | 18 +++-
 tools/testing/selftests/iommu/iommufd_utils.h | 26 ++++++
 11 files changed, 271 insertions(+), 1 deletion(-)
  

Comments

Jason Gunthorpe Feb. 22, 2023, 9:07 p.m. UTC | #1
On Wed, Feb 08, 2023 at 08:16:36PM -0800, Yi Liu wrote:
> iommufd gives userspace the capabilty to manipulating iommu subsytem.
> e.g. DMA map/unmap etc. In the near future, it will also support iommu
> nested translation. Different platform vendors have different implementation
> for the nested translation. So before set up nested translation, userspace
> needs to know the hardware iommu capabilities. For example, Intel platform
> supports guest I/O page table to be the first stage translation structure.
> 
> This series reports the iommu capability for a given iommufd_device which
> has been bound to iommufd. It is a preparation work for nested translation
> support[1]. In this series, Intel VT-d capability reporting is added. Other
> vendors may add their own reporting based on this series.
> 
> [1] https://github.com/yiliu1765/iommufd/tree/iommufd_nesting_vtd_v1

Let's have the comments addressed and this rebased on top of
 https://github.com/jgunthorpe/linux/commits/iommufd_hwpt

Which should address eg the selftest issue

I want to start chipping away at bits of the nesting patch pile and
this part looks close

Thanks,
Jason