On 8/15/20 3:35 PM, Jens Axboe wrote: > On 8/15/20 2:43 PM, Josef wrote: >> it seems to be that read event doesn't work properly, but I'm not sure >> if it is related to what Pavel mentioned >> poll<link>accept works but not poll<link>read -> cqe still receives >> poll event but no read event, however I received a read event after >> the third request via telnet >> >> I just tested https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=io_uring-5.9&id=d4e7cd36a90e38e0276d6ce0c20f5ccef17ec38c >> and >> https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git/commit/?h=io_uring-5.9&id=227c0c9673d86732995474d277f84e08ee763e46 >> (but it works on Linux 5.7) > > I'll take a look. BTW, you seem to be using links in a funny way. You set the > IOSQE_IO_LINK on the start of a link chain, and then the chain stops when > you _don't_ have that flag set. You just set it on everything, then > work-around it with a NOP? > > For this example, only the poll should have IOSQE_IO_LINK set, accept > and read should not. > > This isn't causing your issue, just wanted to clarify how links are > used. Please try: https://git.kernel.dk/cgit/linux-block/commit/?h=io_uring-5.9&id=41d3344604e80db0e466f9deca5262b0914e4827 There was a bug with the -EAGAIN doing repeated retries on sockets that are marked non-blocking. -- Jens Axboe