lkml.org 
[lkml]   [2023]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH v2 0/5] Add Intel VT-d nested translation
    Date
    This is to add Intel VT-d nested translation based on IOMMUFD nesting
    infrastructure. As the iommufd nesting infrastructure series[1], iommu
    core supports new ops to report iommu hardware information, allocate
    domains with user data and sync stage-1 IOTLB. The data required in
    the three paths are vendor-specific, so

    1) IOMMU_HW_INFO_TYPE_INTEL_VTD and struct iommu_device_info_vtd are
    defined to report iommu hardware information for Intel VT-d .
    2) IOMMU_HWPT_DATA_VTD_S1 is defined for the Intel VT-d stage-1 page
    table, it will be used in the stage-1 domain allocation and IOTLB
    syncing path. struct iommu_hwpt_intel_vtd is defined to pass user_data
    for the Intel VT-d stage-1 domain allocation.
    struct iommu_hwpt_invalidate_intel_vtd is defined to pass the data for
    the Intel VT-d stage-1 IOTLB invalidation.

    With above IOMMUFD extensions, the intel iommu driver implements the three
    callbacks to support nested translation.

    Complete code can be found in [2], QEMU could can be found in [3].

    base-commit: f01f1c95684dd18c15dd0e51b4fd6e796a0a2c0e

    [1] https://lore.kernel.org/linux-iommu/20230309080910.607396-1-yi.l.liu@intel.com/
    [2] https://github.com/yiliu1765/iommufd/tree/iommufd_nesting
    [3] https://github.com/yiliu1765/qemu/tree/wip/iommufd_rfcv3%2Bnesting

    Change log:
    v2:
    - The iommufd infrastructure is split to be separate series.

    v1: https://lore.kernel.org/linux-iommu/20230209043153.14964-1-yi.l.liu@intel.com/

    Regards,
    Yi Liu

    Lu Baolu (4):
    iommu/vt-d: Implement hw_info for iommu capability query
    iommu/vt-d: Extend dmar_domain to support nested domain
    iommu/vt-d: Add helper to setup pasid nested translation
    iommu/vt-d: Add nested domain support

    Yi Liu (1):
    iommufd: Add nesting related data structures for Intel VT-d

    drivers/iommu/intel/Makefile | 2 +-
    drivers/iommu/intel/iommu.c | 57 ++++++++---
    drivers/iommu/intel/iommu.h | 51 ++++++++--
    drivers/iommu/intel/nested.c | 143 +++++++++++++++++++++++++++
    drivers/iommu/intel/pasid.c | 142 ++++++++++++++++++++++++++
    drivers/iommu/intel/pasid.h | 2 +
    drivers/iommu/iommufd/hw_pagetable.c | 7 +-
    drivers/iommu/iommufd/main.c | 5 +
    include/uapi/linux/iommufd.h | 136 +++++++++++++++++++++++++
    9 files changed, 522 insertions(+), 23 deletions(-)
    create mode 100644 drivers/iommu/intel/nested.c

    --
    2.34.1

    \
     
     \ /
      Last update: 2023-03-27 00:51    [W:6.997 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site