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