On Thu, Jun 10, 2021 at 10:00:01AM +0800, Jason Wang wrote:
在 2021/6/8 下午9:20, Jason Gunthorpe 写道:Poll is only a part of what is needed here, the main issue is
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 workedHow so? io_uring is about sending work to the kernel, not getting
for multifds.
structued events back?
Actually it can. Userspace can poll multiple fds via preparing multiple sqes
with IORING_OP_ADD flag.
transfering the PRI events to userspace quickly.
This means another ring and we need introduce ioctl() to add or removeThe max size of the ring should be determinable based on the PRI
ioasids from the poll. And it still need a kind of fallback like a list if
the ring is full.
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