RE: [PATCH v2 1/5] iommu/vt-d: Separate page request queue from SVM

From: Tian, Kevin
Date: Wed Sep 18 2024 - 04:23:17 EST


> From: Baolu Lu <baolu.lu@xxxxxxxxxxxxxxx>
> Sent: Saturday, September 14, 2024 1:50 PM
>
> On 2024/9/14 10:53, Tian, Kevin wrote:
> >> From: Baolu Lu<baolu.lu@xxxxxxxxxxxxxxx>
> >> Sent: Saturday, September 14, 2024 9:18 AM
> >>
> >> On 9/14/24 8:52 AM, Tian, Kevin wrote:
> >>>> From: Joel Granados via B4 Relay
> >>>> <devnull+j.granados.samsung.com@xxxxxxxxxx>
> >>>>
> >>>> From: Joel Granados<j.granados@xxxxxxxxxxx>
> >>>>
> >>>> IO page faults are no longer dependent on
> CONFIG_INTEL_IOMMU_SVM.
> >>>> Move
> >>>> all Page Request Queue (PRQ) functions that handle prq events to a
> new
> >>>> file in drivers/iommu/intel/prq.c. The page_req_des struct is now
> >>>> declared in drivers/iommu/intel/prq.c.
> >>>>
> >>>> No functional changes are intended. This is a preparation patch to
> >>>> enable the use of IO page faults outside the SVM/PASID use cases.
> >>> Do we want to guard it under a new config option e.g.
> >>> CONFIG_INTEL_IOMMU_IOPF? it's unnecessary to allocate resources
> >>> for the majority usages which don't require IOPF.
> >>>
> >>> Baolu?
> >> The OS builder doesn't know if Linux will run on a platform with PRI-
> >> capable devices. They'll probably always enable this option if we
> >> provide it.
> > hmm then why do we need a SVM option? In reality I haven't seen
> > a platform which supports IOPF but no pasid/SVM. so the reason
> > for whether to have an option should be same between IOPF/SVM.
> >
> > IMHO the point of options is to allow reducing footprint of the kernel
> > image and many options are probably always enabled in distributions...
>
> To be honest, I would hope to remove the SVM option some day. It's
> nothing special except listening to an external notification and
> synchronize the caches when the page table is updated.

more than that... for each IOMMU the current code allocates 16 pages
and 1 hwirq. Those are unnecessary burdens in majority deployments
which don't support/require I/O page faults.

> It's common to
> all cases where a page table is shared between the IOMMU and another
> component.

but "all cases" with shared page table is actually a small group now.

>
> As for CONFIG_INTEL_IOMMU_IOPF, my suggestion is that we don't need to
> add any unnecessary options unless we see a real need.
>

so I was thinking the opposite, i.e. keeping the option until doing so
becomes a real burden.😊