On 9/18/21 7:41 AM, Victor Stewart wrote: > just auto updated from 5.13.16 to 5.13.17, and suddenly my fixed > file registrations fail with EOPNOTSUPP using liburing 2.0. > > static inline struct io_uring ring; > static inline int *socketfds; > > // ... > > void enableFD(int fd) > { > int result = io_uring_register_files_update(&ring, fd, > &(socketfds[fd] = fd), 1); > printf("enableFD, result = %d\n", result); > } > > maybe this is due to the below and related work that > occurred at the end of 5.13 and liburing got out of sync? > > https://github.com/torvalds/linux/commit/992da01aa932b432ef8dc3885fa76415b5dbe43f#diff-79ffab63f24ef28eec3badbc8769e2a23e0475ab1fbe390207269ece944a0824 > > and can't use liburing 2.1 because of the api changes since 5.13. That's very strange, the -EOPNOTSUPP should only be possible if you are not passing in the ring fd for the register syscall. You should be able to mix and match liburing versions just fine, the only exception is sometimes between releases (of both liburing and the kernel) where we have the liberty to change the API of something that was added before release. Can you do an strace of it and attach? -- Jens Axboe