[PATCH v2 0/7] iommu/vt-d: Add domain_alloc_paging support

Lu Baolu posted 7 patches 1 month ago
drivers/iommu/intel/iommu.h  |   4 +-
drivers/iommu/intel/iommu.c  | 328 +++++++----------------------------
drivers/iommu/intel/nested.c |   2 +-
drivers/iommu/intel/pasid.c  |  28 +--
4 files changed, 64 insertions(+), 298 deletions(-)
[PATCH v2 0/7] iommu/vt-d: Add domain_alloc_paging support
Posted by Lu Baolu 1 month ago
The Intel iommu driver will now use the domain_alloc_paging callback and
remove the legacy domain_alloc callback. This ensures that a valid
device pointer is provided whenever a paging domain is allocated, and
all dmar_domain attributes can be set up at the time of allocation.

Both first-stage and second-stage page tables can be used for a paging
domain. Unless IOMMU_HWPT_ALLOC_NEST_PARENT or
IOMMU_HWPT_ALLOC_DIRTY_TRACKING is specified during paging domain
allocation, this driver will try to use first-stage page tables if the
hardware is capable. This is assuming that the first-stage page table is
compatible with both the host and guest kernels.

The whole series is also available on GitHub:
https://github.com/LuBaolu/intel-iommu/commits/vtd-domain_alloc_paging-v2

Please help review and comment.

Change log:

v2:
 - Make prepare_domain_attach_device() a specific helper to check
   whether a paging domain is compatible with the iommu hardware
   capability.
 - Rename prepare_domain_attach_device() to paging_domain_compatible()
   to make it more meaningful.

v1: https://lore.kernel.org/linux-iommu/20241011042722.73930-1-baolu.lu@linux.intel.com/

Lu Baolu (7):
  iommu/vt-d: Add domain_alloc_paging support
  iommu/vt-d: Remove unused domain_alloc callback
  iommu/vt-d: Enhance compatibility check for paging domain attach
  iommu/vt-d: Remove domain_update_iommu_cap()
  iommu/vt-d: Remove domain_update_iommu_superpage()
  iommu/vt-d: Refactor first_level_by_default()
  iommu/vt-d: Refine intel_iommu_domain_alloc_user()

 drivers/iommu/intel/iommu.h  |   4 +-
 drivers/iommu/intel/iommu.c  | 328 +++++++----------------------------
 drivers/iommu/intel/nested.c |   2 +-
 drivers/iommu/intel/pasid.c  |  28 +--
 4 files changed, 64 insertions(+), 298 deletions(-)

-- 
2.43.0
Re: [PATCH v2 0/7] iommu/vt-d: Add domain_alloc_paging support
Posted by Baolu Lu 3 weeks, 6 days ago
On 2024/10/21 16:51, Lu Baolu wrote:
> The Intel iommu driver will now use the domain_alloc_paging callback and
> remove the legacy domain_alloc callback. This ensures that a valid
> device pointer is provided whenever a paging domain is allocated, and
> all dmar_domain attributes can be set up at the time of allocation.
> 
> Both first-stage and second-stage page tables can be used for a paging
> domain. Unless IOMMU_HWPT_ALLOC_NEST_PARENT or
> IOMMU_HWPT_ALLOC_DIRTY_TRACKING is specified during paging domain
> allocation, this driver will try to use first-stage page tables if the
> hardware is capable. This is assuming that the first-stage page table is
> compatible with both the host and guest kernels.
> 
> The whole series is also available on GitHub:
> https://github.com/LuBaolu/intel-iommu/commits/vtd-domain_alloc_paging-v2
> 
> Please help review and comment.
> 
> Change log:
> 
> v2:
>   - Make prepare_domain_attach_device() a specific helper to check
>     whether a paging domain is compatible with the iommu hardware
>     capability.
>   - Rename prepare_domain_attach_device() to paging_domain_compatible()
>     to make it more meaningful.
> 
> v1:https://lore.kernel.org/linux-iommu/20241011042722.73930-1- 
> baolu.lu@linux.intel.com/
> 
> Lu Baolu (7):
>    iommu/vt-d: Add domain_alloc_paging support
>    iommu/vt-d: Remove unused domain_alloc callback
>    iommu/vt-d: Enhance compatibility check for paging domain attach
>    iommu/vt-d: Remove domain_update_iommu_cap()
>    iommu/vt-d: Remove domain_update_iommu_superpage()
>    iommu/vt-d: Refactor first_level_by_default()
>    iommu/vt-d: Refine intel_iommu_domain_alloc_user()
> 
>   drivers/iommu/intel/iommu.h  |   4 +-
>   drivers/iommu/intel/iommu.c  | 328 +++++++----------------------------
>   drivers/iommu/intel/nested.c |   2 +-
>   drivers/iommu/intel/pasid.c  |  28 +--
>   4 files changed, 64 insertions(+), 298 deletions(-)

Queued for v6.13.

--
baolu