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. There are many examples in the kernel. The ones in the mlx5 vfio driver spring to mind as a scheme I recently looked at.
Jason