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
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
On Thu, Nov 16, 2023 at 09:42:23AM +0800, Liu, Jing2 wrote:
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?
io_uring can trigger poll and use other approaches, it is flexible the driver can scale this in different ways.
Jason
linux-kselftest-mirror@lists.linaro.org