On Thu, Jun 10, 2021 at 10:00:01AM +0800, Jason Wang wrote: > > 在 2021/6/8 下午9:20, Jason Gunthorpe 写道: > > On Tue, Jun 08, 2021 at 09:10:42AM +0800, Jason Wang wrote: > > > > > Well, this sounds like a re-invention of io_uring which has already worked > > > for multifds. > > How so? io_uring is about sending work to the kernel, not getting > > structued events back? > > > Actually it can. Userspace can poll multiple fds via preparing multiple sqes > with IORING_OP_ADD flag. Poll is only a part of what is needed here, the main issue is transfering the PRI events to userspace quickly. > This means another ring and we need introduce ioctl() to add or remove > ioasids from the poll. And it still need a kind of fallback like a list if > the ring is full. The max size of the ring should be determinable based on the PRI concurrance of each device and the number of devices sharing the ring In any event, I'm not entirely convinced eliding the PRI user/kernel copy is the main issue here.. If we want this to be low latency I think it ends up with some kernel driver component assisting the vIOMMU emulation and avoiding the round trip to userspace Jason