Re: [RFC] /dev/ioasid uAPI proposal

From: Jason Wang
Date: Thu Jun 03 2021 - 21:30:51 EST



在 2021/6/4 上午2:19, Jacob Pan 写道:
Hi Shenming,

On Wed, 2 Jun 2021 12:50:26 +0800, Shenming Lu <lushenming@xxxxxxxxxx>
wrote:

On 2021/6/2 1:33, Jason Gunthorpe wrote:
On Tue, Jun 01, 2021 at 08:30:35PM +0800, Lu Baolu wrote:
The drivers register per page table fault handlers to /dev/ioasid which
will then register itself to iommu core to listen and route the per-
device I/O page faults.
I'm still confused why drivers need fault handlers at all?
Essentially it is the userspace that needs the fault handlers,
one case is to deliver the faults to the vIOMMU, and another
case is to enable IOPF on the GPA address space for on-demand
paging, it seems that both could be specified in/through the
IOASID_ALLOC ioctl?

I would think IOASID_BIND_PGTABLE is where fault handler should be
registered. There wouldn't be any IO page fault without the binding anyway.

I also don't understand why device drivers should register the fault
handler, the fault is detected by the pIOMMU and injected to the vIOMMU. So
I think it should be the IOASID itself register the handler.


As discussed in another thread.

I think the reason is that ATS doesn't forbid the #PF to be reported via a device specific way.

Thanks



Thanks,
Shenming


Thanks,

Jacob