On 8/27/23 13:25, Vidra.Jonas@xxxxxxxxx wrote:
Hello, on my C8000 workstation, I'm getting libuv aborts connected to io_uring usage. I'm not sure whether this is a libuv bug or a kernel one, but since libuv is pretty well tested on other archs, it's probably a PA-RISC issue. I've encountered the problem in kernel versions 6.1.41 and 6.1.46. 6.1.4 seemed fine, but I updated other system packages in the meantime, so I can't be sure. The issue is that a call to `io_uring_enter(fd, 2, 2, IORING_ENTER_GETEVENTS)` returns 0, and libuv reacts to that by aborting, probably on this line: https://github.com/libuv/libuv/blob/65dc822d6c20a9130fa100c7b46d751f8cf4d233/src/unix/linux.c#L1252 (I'm saying probably, because gdb seems to be buggy on my machine and I don't really trust its output, so I rely on strace instead, but that doesn't support backtraces on the PA-RISC.) Since min_complete is 2 here and IORING_SETUP_IOPOLL was not specified during setup (the only flags that can be passed to io_uring_setup are 0 and IORING_SETUP_SQPOLL), the call should (if I understand the docs correctly) block instead of returning. The bug manifests as aborts in CMake when compiling KDE packages, as any call of `cmake -E cmake_autogen ...` fails. Is this a known issue? I've seen a number of io_uring patches on the ML, but none seem relevant.
Just to sum up this mail thread: The upcoming 6.1.51 stable kernel should have the relevant patches. Kernel 6.4 and above should work out of the box. Helge