Re: [PATCH v2 0/5] iommu: Enable user space IOPFs in non-PASID and non-svm cases
From: Joel Granados
Date: Mon Sep 16 2024 - 04:51:53 EST
On Sat, Sep 14, 2024 at 12:48:31AM +0000, Tian, Kevin wrote:
> > From: Joel Granados via B4 Relay
> > <devnull+j.granados.samsung.com@xxxxxxxxxx>
> >
> > This series makes use of iommufd_hwpt_replace_device to execute
> > non-pasid/non-svm user space IOPFs. Our main motivation is to enable
> > user-space driver driven device verification without SVM/PASID.
>
> can you elaborate why IOPFs are necessary to help verify such usage?
In retrospect "enable" might not be the best word to use here. We are not
"enabling" user-space driver driven device verification as it is already
enabled; you could already poke a device from user space. But the whole poke
space was not available, you could not test IOPF without having an SVM/PASID
capable IOMMU. Therefore a better wording would be "Our main motivation is to
expand or facilitate user-space driver driven device verification by enabling
IOPF without SMV/PASID".
Does this address your concern?
>
> >
> > What?
> > * Enable IO page fault handling in user space for a non-pasid, non-svm
> > and non-virtualised use case.
> > * Move IOMMU_IOPF configuration from INTEL_IOMMU_SVM into
> > INTEL_IOMMU.
> > * Move all page request queue related logic to a new (prq.c) file.
> > * Remove PASID checks from PRQ event handling as well as PRQ
> > initialization.
> > * Allow execution of IOMMU_HWPT_ALLOC with a valid fault id
> > (IOMMU_HWPT_FAULT_ID_VALID)
> > * Insert a zero handle into the PASID array in dev->iommu_group when
> > replacing the old HWPT with an IOPF enabled HWPT.
>
> the last bullet is stale now.
oops. Missed that one; will correct in next version
>
> btw a selftest is expected too.
I'll figure this out for the next version.
Thx for the review
Best
--
Joel Granados