> From: Jason Gunthorpe <jgg@xxxxxxxxxx> > Sent: Tuesday, December 5, 2023 3:51 AM > > On Mon, Dec 04, 2023 at 11:22:49AM -0800, Sean Christopherson wrote: > > It wouldn't even necessarily need to be a notifier per se, e.g. if we taught > KVM > > to manage IOMMU page tables, then KVM could simply install mappings for > multiple > > sets of page tables as appropriate. iommu driver still needs to be notified to invalidate the iotlb, unless we want KVM to directly call IOMMU API instead of going through iommufd. > > This somehow feels more achievable to me since KVM already has all the > code to handle multiple TDPs, having two parallel ones is probably > much easier than trying to weld KVM to a different page table > implementation through some kind of loose coupled notifier. > yes performance-wise this can also reduce the I/O page faults as the sharing approach achieves. but how is it compared to another way of supporting IOPF natively in iommufd and iommu drivers? Note that iommufd also needs to support native vfio applications e.g. dpdk. I'm not sure whether there will be strong interest in enabling IOPF for those applications. But if the answer is yes then it's inevitable to have such logic implemented in the iommu stack given KVM is not in the picture there. With that is it more reasonable to develop the IOPF support natively in iommu side, plus an optional notifier mechanism to sync with KVM-induced host PTE installation as optimization?