• Jason Gunthorpe's avatar
    Merge branch 'iommufd_pri' into iommufd for-next · 18dcca24
    Jason Gunthorpe authored
    Lu Baolu says:
    
    ====================
    This series implements the functionality of delivering IO page faults to
    user space through the IOMMUFD framework. One feasible use case is the
    nested translation. Nested translation is a hardware feature that supports
    two-stage translation tables for IOMMU. The second-stage translation table
    is managed by the host VMM, while the first-stage translation table is
    owned by user space. This allows user space to control the IOMMU mappings
    for its devices.
    
    When an IO page fault occurs on the first-stage translation table, the
    IOMMU hardware can deliver the page fault to user space through the
    IOMMUFD framework. User space can then handle the page fault and respond
    to the device top-down through the IOMMUFD. This allows user space to
    implement its own IO page fault handling policies.
    
    User space application that is capable of handling IO page faults should
    allocate a fault object, and bind the fault object to any domain that it
    is willing to handle the fault generatd for them. On a successful return
    of fault object allocation, the user can retrieve and respond to page
    faults by reading or writing to the file descriptor (FD) returned.
    
    The iommu selftest framework has been updated to test the IO page fault
    delivery and response functionality.
    ====================
    
    * iommufd_pri:
      iommufd/selftest: Add coverage for IOPF test
      iommufd/selftest: Add IOPF support for mock device
      iommufd: Associate fault object with iommufd_hw_pgtable
      iommufd: Fault-capable hwpt attach/detach/replace
      iommufd: Add iommufd fault object
      iommufd: Add fault and response message definitions
      iommu: Extend domain attach group with handle support
      iommu: Add attach handle to struct iopf_group
      iommu: Remove sva handle list
      iommu: Introduce domain attachment handle
    
    Link: https://lore.kernel.org/all/20240702063444.105814-1-baolu.lu@linux.intel.comSigned-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    18dcca24
selftest.c 39.8 KB