> From: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Sent: Sunday, June 16, 2024 2:12 PM > > 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. > > The series and related patches are available on GitHub: > https://github.com/LuBaolu/intel-iommu/commits/iommufd-io-pgfault- > delivery-v7 > for the entire series: Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>