Re: [PATCH v2 0/6] IOMMUFD: Deliver IO page faults to user space

From: Liu, Jing2
Date: Wed Nov 15 2023 - 20:42:47 EST


Hi Jason,

On 11/15/2023 9:58 PM, Jason Gunthorpe wrote:
On Wed, Nov 15, 2023 at 01:17:06PM +0800, Liu, Jing2 wrote:

This is the right way to approach it,

I learned that there was discussion about using io_uring to get the
page fault without

eventfd notification in [1], and I am new at io_uring and studying the
man page of

liburing, but there're questions in my mind on how can QEMU get the
coming page fault

with a good performance.

Since both QEMU and Kernel don't know when comes faults, after QEMU
submits one

read task to io_uring, we want kernel pending until fault comes. While
based on

hwpt_fault_fops_read() in [patch v2 4/6], it just returns 0 since
there's now no fault,

thus this round of read completes to CQ but it's not what we want. So
I'm wondering

how kernel pending on the read until fault comes. Does fops callback
need special work to
Implement a fops with poll support that triggers when a new event is
pushed and everything will be fine.

Does userspace need also setup a POLL flag to let io_uring go into poll, or io_uring

always try to poll?

There are many examples in the
kernel. The ones in the mlx5 vfio driver spring to mind as a scheme I
recently looked at.

Thank you very much for guiding the way. We will study the example to understand

more.

BRs,

Jing

Jason