On 11/14/24 00:43, Jason Gunthorpe wrote:
On Wed, Nov 13, 2024 at 10:55:41AM +0800, Baolu Lu wrote:
On 11/13/24 09:23, Jason Gunthorpe wrote:
https://github.com/Linaro/linux-kernel-uadk/tree/6.12-wip
https://github.com/Linaro/qemu/tree/6.12-wip
Still need this hack
https://github.com/Linaro/linux-kernel-uadk/commit/
eaa194d954112cad4da7852e29343e546baf8683
One is adding iommu_dev_enable/disable_feature IOMMU_DEV_FEAT_SVA,
which you have patchset before.
Yes, I have a more complete version of that here someplace. Need some
help on vt-d but hope to get that done next cycle.
Can you please elaborate this a bit more? Are you talking about below
change
I need your help to remove IOMMU_DEV_FEAT_IOPF from the intel
driver. I have a patch series that eliminates it from all the other
drivers, and I wrote a patch to remove FEAT_SVA from intel..
Yes, sure. Let's make this happen in the next cycle.
FEAT_IOPF could be removed. IOPF manipulation can be handled in the
domain attachment path. A per-device refcount can be implemented. This
count increments with each iopf-capable domain attachment and decrements
with each detachment. PCI PRI is enabled for the first iopf-capable
domain and disabled when the last one is removed. Probably we can also
solve the PF/VF sharing PRI issue.
With iopf moved to the domain attach path and hardware capability checks
to the SVA domain allocation path, FEAT_SVA becomes essentially a no-op.
+ ret = iommu_dev_enable_feature(idev->dev, IOMMU_DEV_FEAT_SVA);
+ if (ret)
+ return ret;
in iommufd_fault_iopf_enable()?
I have no idea about why SVA is affected when enabling iopf.
It is ARM not implementing the API correctly. Only SVA turns on the
page fault reporting mechanism.
In the new world the page fault reporting should be managed during
domain attachment. If the domain is fault capable then faults should
be delivered to that domain. That is the correct time to setup the
iopf mechanism as well.
So I fixed that and now ARM and AMD both have no-op implementations of
IOMMU_DEV_FEAT_IOPF and IOMMU_DEV_FEAT_SVA. Thus I'd like to remove it
entirely.
Thank you for the explanation.
--
baolu