All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC v16 0/9] SMMUv3 Nested Stage Setup (IOMMU part)
@ 2021-10-27 10:44 ` Eric Auger
  0 siblings, 0 replies; 116+ messages in thread
From: Eric Auger @ 2021-10-27 10:44 UTC (permalink / raw)
  To: eric.auger.pro, eric.auger, iommu, linux-kernel, kvm, kvmarm,
	joro, will, robin.murphy, jean-philippe, zhukeqian1
  Cc: alex.williamson, jacob.jun.pan, yi.l.liu, kevin.tian, ashok.raj,
	maz, peter.maydell, vivek.gautam, shameerali.kolothum.thodi,
	wangxingang5, jiangkunkun, yuzenghui, nicoleotsuka, chenxiang66,
	sumitg, nicolinc, vdumpa, zhangfei.gao, zhangfei.gao, lushenming,
	vsethi

This series brings the IOMMU part of HW nested paging support
in the SMMUv3.

The SMMUv3 driver is adapted to support 2 nested stages.

The IOMMU API is extended to convey the guest stage 1
configuration and the hook is implemented in the SMMUv3 driver.

This allows the guest to own the stage 1 tables and context
descriptors (so-called PASID table) while the host owns the
stage 2 tables and main configuration structures (STE).

This work mainly is provided for test purpose as the upper
layer integration is under rework and bound to be based on
/dev/iommu instead of VFIO tunneling. In this version we also get
rid of the MSI BINDING ioctl, assuming the guest enforces
flat mapping of host IOVAs used to bind physical MSI doorbells.
In the current QEMU integration this is achieved by exposing
RMRs to the guest, using Shameer's series [1]. This approach
is RFC as the IORT spec is not really meant to do that
(single mapping flag limitation).

Best Regards

Eric

This series (Host) can be found at:
https://github.com/eauger/linux/tree/v5.15-rc7-nested-v16
This includes a rebased VFIO integration (although not meant
to be upstreamed)

Guest kernel branch can be found at:
https://github.com/eauger/linux/tree/shameer_rmrr_v7
featuring [1]

QEMU integration (still based on VFIO and exposing RMRs)
can be found at:
https://github.com/eauger/qemu/tree/v6.1.0-rmr-v2-nested_smmuv3_v10
(use iommu=nested-smmuv3 ARM virt option)

Guest dependency:
[1] [PATCH v7 0/9] ACPI/IORT: Support for IORT RMR node

History:

v15 -> v16:
- guest RIL must support RIL
- additional checks in the cache invalidation hook
- removal of the MSI BINDING ioctl (tentative replacement
  by RMRs)


Eric Auger (9):
  iommu: Introduce attach/detach_pasid_table API
  iommu: Introduce iommu_get_nesting
  iommu/smmuv3: Allow s1 and s2 configs to coexist
  iommu/smmuv3: Get prepared for nested stage support
  iommu/smmuv3: Implement attach/detach_pasid_table
  iommu/smmuv3: Allow stage 1 invalidation with unmanaged ASIDs
  iommu/smmuv3: Implement cache_invalidate
  iommu/smmuv3: report additional recoverable faults
  iommu/smmuv3: Disallow nested mode in presence of HW MSI regions

 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 383 ++++++++++++++++++--
 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h |  14 +-
 drivers/iommu/arm/arm-smmu/arm-smmu.c       |   8 +
 drivers/iommu/intel/iommu.c                 |  13 +
 drivers/iommu/iommu.c                       |  79 ++++
 include/linux/iommu.h                       |  35 ++
 include/uapi/linux/iommu.h                  |  54 +++
 7 files changed, 548 insertions(+), 38 deletions(-)

-- 
2.26.3


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

end of thread, other threads:[~2022-01-04  2:42 UTC | newest]

Thread overview: 116+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-27 10:44 [RFC v16 0/9] SMMUv3 Nested Stage Setup (IOMMU part) Eric Auger
2021-10-27 10:44 ` Eric Auger
2021-10-27 10:44 ` Eric Auger
2021-10-27 10:44 ` [RFC v16 1/9] iommu: Introduce attach/detach_pasid_table API Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-12-06 10:48   ` Joerg Roedel
2021-12-06 10:48     ` Joerg Roedel
2021-12-06 10:48     ` Joerg Roedel
2021-12-07 10:22     ` Eric Auger
2021-12-07 10:22       ` Eric Auger
2021-12-07 10:22       ` Eric Auger
2021-12-08  2:44       ` Lu Baolu
2021-12-08  2:44         ` Lu Baolu
2021-12-08  2:44         ` Lu Baolu
2021-12-08  7:33         ` Eric Auger
2021-12-08  7:33           ` Eric Auger
2021-12-08  7:33           ` Eric Auger
2021-12-08 12:56           ` Jason Gunthorpe
2021-12-08 12:56             ` Jason Gunthorpe
2021-12-08 12:56             ` Jason Gunthorpe via iommu
2021-12-08 17:20             ` Jean-Philippe Brucker
2021-12-08 17:20               ` Jean-Philippe Brucker
2021-12-08 17:20               ` Jean-Philippe Brucker
2021-12-08 18:31               ` Jason Gunthorpe
2021-12-08 18:31                 ` Jason Gunthorpe
2021-12-08 18:31                 ` Jason Gunthorpe via iommu
2021-12-09  2:58                 ` Tian, Kevin
2021-12-09  2:58                   ` Tian, Kevin
2021-12-09  2:58                   ` Tian, Kevin
     [not found]                 ` <BN9PR11MB527624080CB9302481B74C7A8C709@BN9PR11MB5276.namprd11.prod.outlook.com>
2021-12-09  3:59                   ` Tian, Kevin
2021-12-09  3:59                     ` Tian, Kevin
2021-12-09  3:59                     ` Tian, Kevin
2021-12-09 16:08                     ` Jason Gunthorpe
2021-12-09 16:08                       ` Jason Gunthorpe
2021-12-09 16:08                       ` Jason Gunthorpe via iommu
2021-12-10  8:56                       ` Tian, Kevin
2021-12-10  8:56                         ` Tian, Kevin
2021-12-10 13:23                         ` Jason Gunthorpe
2021-12-10 13:23                           ` Jason Gunthorpe
2021-12-11  3:57                           ` Tian, Kevin
2021-12-11  3:57                             ` Tian, Kevin
2021-12-16 20:48                             ` Jason Gunthorpe
2021-12-16 20:48                               ` Jason Gunthorpe
2022-01-04  2:42                               ` Tian, Kevin
2022-01-04  2:42                                 ` Tian, Kevin
2021-12-11  5:18                           ` Tian, Kevin
2021-12-11  5:18                             ` Tian, Kevin
2021-12-09  7:50                 ` Eric Auger
2021-12-09  7:50                   ` Eric Auger
2021-12-09  7:50                   ` Eric Auger
2021-12-09 15:40                   ` Jason Gunthorpe
2021-12-09 15:40                     ` Jason Gunthorpe
2021-12-09 15:40                     ` Jason Gunthorpe via iommu
2021-12-09 16:37                     ` Eric Auger
2021-12-09 16:37                       ` Eric Auger
2021-12-09 16:37                       ` Eric Auger
2021-12-09  3:21             ` Tian, Kevin
2021-12-09  3:21               ` Tian, Kevin
2021-12-09  3:21               ` Tian, Kevin
2021-12-09  9:44               ` Eric Auger
2021-12-09  9:44                 ` Eric Auger
2021-12-09  9:44                 ` Eric Auger
2021-12-09  8:31             ` Eric Auger
2021-12-09  8:31               ` Eric Auger
2021-12-09  8:31               ` Eric Auger
2021-10-27 10:44 ` [RFC v16 2/9] iommu: Introduce iommu_get_nesting Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 22:15   ` kernel test robot
2021-10-28  3:22   ` kernel test robot
2021-10-27 10:44 ` [RFC v16 3/9] iommu/smmuv3: Allow s1 and s2 configs to coexist Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44 ` [RFC v16 4/9] iommu/smmuv3: Get prepared for nested stage support Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44 ` [RFC v16 5/9] iommu/smmuv3: Implement attach/detach_pasid_table Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44 ` [RFC v16 6/9] iommu/smmuv3: Allow stage 1 invalidation with unmanaged ASIDs Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44 ` [RFC v16 7/9] iommu/smmuv3: Implement cache_invalidate Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44 ` [RFC v16 8/9] iommu/smmuv3: report additional recoverable faults Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 21:05   ` kernel test robot
2021-10-27 22:41   ` kernel test robot
2021-10-27 22:41     ` kernel test robot
2021-10-27 10:44 ` [RFC v16 9/9] iommu/smmuv3: Disallow nested mode in presence of HW MSI regions Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-10-27 10:44   ` Eric Auger
2021-12-03 12:27 ` [RFC v16 0/9] SMMUv3 Nested Stage Setup (IOMMU part) Zhangfei Gao
2021-12-03 12:27   ` Zhangfei Gao
2021-12-03 12:27   ` Zhangfei Gao
2021-12-07 10:27   ` Eric Auger
2021-12-07 10:27     ` Eric Auger
2021-12-07 10:27     ` Eric Auger
2021-12-07 10:35     ` Zhangfei Gao
2021-12-07 10:35       ` Zhangfei Gao
2021-12-07 10:35       ` Zhangfei Gao
2021-12-07 11:06       ` Eric Auger
2021-12-07 11:06         ` Eric Auger
2021-12-07 11:06         ` Eric Auger
2021-12-08 13:33         ` Shameerali Kolothum Thodi
2021-12-08 13:33           ` Shameerali Kolothum Thodi
2021-12-08 13:33           ` Shameerali Kolothum Thodi via iommu
2021-12-03 13:13 ` Sumit Gupta
2021-12-03 13:13   ` Sumit Gupta
2021-12-03 13:13   ` Sumit Gupta via iommu
2021-12-07 10:28   ` Eric Auger
2021-12-07 10:28     ` Eric Auger
2021-12-07 10:28     ` Eric Auger

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.