Created attachment 288761 [details] Test program to compare poll() to io_uring ADD_POLL io_uring POLL_ADD should return identical results to poll/epoll. (With the possible exception of epoll not accepting regular files.) Test program performs 3 steps using fd = 0. 0. poll() for POLLIN 1. epoll() for POLLIN 2. io_uring poll for POLLIN The expected result is that each step returns identical information. The actual result is: A) As expected, if fd 0 is a pipe. B) But if fd 0 is a tty: a do_poll: events 00000001 read 2 bytes: a b do_epoll: events 00000001 read 2 bytes: b do_io_uring_poll() failed, errno 22: Invalid argument Test program attached.
This was double poll, long since fixed.