Alviro Iskandar Setiawan (3): arch/syscall: Use __NR_mmap2 existence for preprocessor condition man/io_uring_buf_ring_advance.3: Fix return type man/io_uring_buf_ring_cq_advance.3: Fix return type Ammar Faizi (60): test/helpers: Use a proper cast for `(struct sockaddr *)` argument lib: Add __hot and __cold macros setup: Mark the exported functions as __cold CHANGELOG: Fixup missing space arch: syscall: Add `__sys_open()` syscall arch: syscall: Add `__sys_read()` syscall arch: Remove `__INTERNAL__LIBURING_LIB_H` checks arch/aarch64: lib: Add `get_page_size()` function lib: Style fixup for #if / #elif / #else / #endif lib: Enable nolibc support for aarch64 test: Add nolibc test .github: Enable aarch64 nolibc build for GitHub bot CHANGELOG: Note about aarch64 support .github: Upgrade GitHub bot to Ubuntu 22.04 and gcc-11 .github: Use `-O3` flag for GitHub bot Delete `src/syscall.c` and get back to use `__sys_io_uring*` functions arch/generic: Rename `____sys_io_uring*` to `__sys_io_uring*` helpers.h: Kill T_EXIT_ERROR because it's not used .gitignore: Add poll-bench and send-zerocopy examples examples/io_uring-udp: Use a proper cast for `(struct sockaddr *)` argument .github: Update OS to Ubuntu 22.04 for shellcheck CI test/cq-overflow: Don't call `io_uring_queue_exit()` if the ring is not initialized test/eeed8b54e0df: Initialize the `malloc()`ed buffer before `write()` test/file-verify: Fix reading from uninitialized buffer test/fixed-reuse: Fix reading from uninitialized array test/fpos: Fix reading from uninitialized buffer test/statx: Fix reading from uninitialized buffer test/submit-link-fail: Initialize the buffer before `write()` test/232c93d07b74: Fix reading from uninitialized buffer test/eventfd-disable: Fix reading uninitialized variable test/file-register: Fix reading from uninitialized buffer liburing: Change the type of `flags` in `io_uring_prep_renameat()` to `unsigned int` io_uring: uapi: Sync with the kernel syscall: Make io_uring syscall arguments consistent syscall: Add io_uring syscall functions man: Clarify "man 2" entry for io_uring syscalls man: Add `io_uring_enter2()` function signature man: Alias `io_uring_enter2()` to `io_uring_enter()` test/io_uring_{enter,setup,register}: Use the exported syscall functions man/io_uring_enter.2: Fix typo "which is behaves" -> "which behaves" github bot: Upgrade clang version to 16 CHANGELOG: Note about `io_uring_{enter,enter2,register,setup}` queue: Remove unnecessary goto and label test/helpers: Add `t_bind_ephemeral_port()` function t/poll-link: Don't brute force the port number t/socket-rw: Don't brute force the port number t/socket-rw-eagain: Don't brute force the port number t/socket-rw-offset: Don't brute force the port number t/files-exit-hang-poll: Don't brute force the port number t/socket: Don't use a static port number t/connect: Don't use a static port number t/shutdown: Don't use a static port number t/recv-msgall: Don't use a static port number t/232c93d07b74: Don't use a static port number t/recv-msgall-stream: Don't use a static port number liburing: Export `__NR_io_uring_{setup,enter,register}` to user test/ringbuf-read: Delete `.ringbuf-read.%d` before exit test/helpers: Fix clang warning Makefile: Introduce `LIBURING_CFLAGS` variable github: Append `-Wshorten-64-to-32` flag for clang build Ankit Kumar (5): configure: check for nvme uring command support io_uring.h: sync sqe entry with 5.20 io_uring nvme: add nvme opcodes, structures and helper functions test: add io_uring passthrough test test/io_uring_passthrough: add test case for poll IO Bikal Lem (1): man: fix typo in manual for io_uring_enter Caleb Sander (5): liburing: cache ring sizes and masks queue: avoid io_uring_enter() with no SQEs queue: return unsigned from __io_uring_flush_sq() queue: assume direct SQ-SQE mapping queue: enter if CQ needs it, even if SQ doesn't David Disseldorp (3): test/runtests.sh: print failure / time-out counts test/sigfd-deadlock: improve error handling test/sigfd-deadlock: skip test if poll returns -EOPNOTSUPP Dirk Müller (1): Handle EINTR in tests Dominik Thalhammer (2): Fix constant correctness error in `getxattr`/`fgetxattr` Fix constant correctness error in `io_uring_register_files_update` Dylan Yudaken (46): add a test for async reads with buffer_select add t_create_socket_pair add IORING_RECV_MULTISHOT to io_uring.h add io_uring_prep_(recv|recvmsg)_multishot add IORING_RECV_MULTISHOT docs add recv-multishot test add poll overflow test add accept with overflow test remove recvmsg_multishot fix test_buf_select_pipe on older kernels add multishot recvmsg API add tests for multishot recvmsg fix io_uring_recvmsg_cmsg_nexthdr logic add a test for bad buf_ring register Copy IORING_SETUP_SINGLE_ISSUER into io_uring.h test: poll-mshot-overflow use proper return codes skip poll-mshot-overflow on old kernels fixup poll-mshot-update test: have poll-mshot-update run with both big and small cqe more consistent multishot recvmsg API parameter names order like functions together in liburing.h change io_uring_recvmsg_payload_length return type add documentation for multishot recvmsg add an example for a UDP server io_uring-udp: make more obvious what kernel version is required handle buffered writes in read-write test Copy defer task run definition from kernel Add documentation for IORING_SETUP_DEFER_TASKRUN flag add io_uring_submit_and_get_events and io_uring_get_events add a t_probe_defer_taskrun helper function for tests update existing tests for defer taskrun add a defer-taskrun test update io_uring_enter.2 docs for IORING_FEAT_NODROP add docs for overflow lost errors expose CQ ring overflow state overflow: add tests file-verify test: log if short read test invalid sendmsg and recvmsg handle single issuer task registration at ring creation update documentation to reflect no 5.20 kernel give open-direct-pick.c a unique path fix int shortening bug in io_uring_recvmsg_validate fix len type of fgettxattr etc Document maximum ring size for io_uring_register_buf_ring liburing: Clean up `-Wshorten-64-to-32` warnings from clang fix recv-multishot test skipping in 6.1 Eli Schwartz (10): tests: support notifying that a test skipped itself tests: migrate some tests to use enum-based exit codes tests: emit a skip exit code if invoked with additional argv tests: mark passing tests which exit early as skipped tests: do not report an error message when return ret that might be a skip tests: handle some skips that used a goto to enter cleanup tests: more work on updating exit codes to use enum-based status reporting tests: mention in a status message that this is a skip tests: migrate a skip that used a goto to enter cleanup tests: correctly exit with failure in a looped test Frank Rehwinkel (3): man/io_uring_prep_accept.3 rework symlink man/io_uring_register_files_sparse.3 man/io_uring_prep_accept.3 remove bad advice Frederick Mayle (1): man: clarify non-seekable file read/write API Guillem Jover (4): Fix typos Fix typos man: Add missing section numbers man: Lowercase man page name in title header Jeff Moyer (1): liburing: fix return code for test/hardlink.t Jens Axboe (84): test/io_uring_register: kill old memfd test Merge branch 'exitcode-protocol' of https://github.com/eli-schwartz/liburing test/runtests.sh: drop overly verbose "test skipped itself" test/runtests.sh: don't print skipped tests at the end Add sync cancel helper test/fd-pass: add test case for direct descriptor passing test/sync-cancel: add test case for sync cancelation API liburing.spec: bump version to 2.3 test/fd-pass: use unsigned char for pattern check range Enable -O3 for liburing compilation test/timeout-overflow: use T_EXIT_SKIP test/timeout-overflow: correct one missed '0' return test/recv-multishot: don't fail on older kernels Add __maybe_unused attribute test/fd-pass: unlink crezted file after test test/file-update: add test case for update without table Correct mistakes on send/recv* flags Merge tag 'github-bot-2022-07-11' of https://github.com/ammarfaizi2/liburing liburing.h: style and size_t vs int cleanup Merge branch 'master' of https://github.com/bikallem/liburing test/io_uring_passthrough: cleanups Merge tag 'github-bot-2022-08-10' of https://github.com/ammarfaizi2/liburing Revert "test/file-register: Fix reading from uninitialized buffer" Revert "test/fixed-reuse: Fix reading from uninitialized array" Revert "test/file-verify: Fix reading from uninitialized buffer" Revert "test/eventfd-disable: Fix reading uninitialized variable" Revert "test/232c93d07b74: Fix reading from uninitialized buffer" Merge branch 'pu/man-fixes' of https://github.com/guillemj/liburing Merge branch 'refactor/cache-ring-size' of https://github.com/calebsander/liburing Merge branch 'feature/no-empty-submit' of https://github.com/calebsander/liburing Merge branch 'fix/flush-sq-unsigned' of https://github.com/calebsander/liburing Merge branch 'refactor/sq-init' of https://github.com/calebsander/liburing src/queue: always enter for IOPOLL Revert "src/queue: always enter for IOPOLL" Merge branch 'fix/iopoll-submit' of https://github.com/calebsander/liburing Merge branch 'patch-1' of https://github.com/Thalhammer/liburing Merge branch 'patch-2' of https://github.com/Thalhammer/liburing man/io_uring_enter.2: updates to SEND_ZC man/io_uring_prep_send.3: correct parameter name man/io_uring_prep_send_zc.3: add basic helper man page man/io_uring_prep_send_zc.3: fix title Add man page for io_uring_prep_socket_direct_alloc() test/msg-ring: add registered file test case Add io_uring_register_sync_cancel() man page man/io_uring_register_sync_cancel.3: fix typo Remove exports of removed notification functions !SQPOLL setups don't need acquire/release semantics on SQ ring updates test/rsrc_tags: turn assert into actual error logging Add IOPOLL potential leak test case Merge branch 'test_print_counts' of https://github.com/ddiss/liburing Merge branch 'fix-IORING_SETUP_CQE32-desc' of https://github.com/jrudolph/liburing man/io_uring_sqe_set_flags.3: clarify IOSQE_ASYNC Merge branch 'test-sigfd-deadlock' of https://github.com/ddiss/liburing Merge branch 'master' of https://github.com/Codesire-Deng/liburing man/io_uring_register_sync_cancel.3: line up 2nd line properly Merge branch 'clarify_seekable' of https://github.com/fkm3/liburing test/ring-leak.c: kick UNIX garbage collection man/io_uring_register_files.3: clarify why registered files exist man/io_uring_prep_accept.3: add note on multishot and addr/addrlen Merge branch 'master' of https://github.com/ilikdoge/liburing man: fixup missing entry annotations Merge branch 'master' of https://github.com/ilikdoge/liburing Merge tag 'liburing-fixes-2022-10-19' of https://github.com/ammarfaizi2/liburing src/queue: fix reversed check for SQPOLL man/io_uring_get_sqe.3: add note about SQE -> CQE user_data passing Merge branch 'documentation-io_uring_sqe_set_data' of https://github.com/ioquatix/liburing Merge branch 'documentation-io_uring_get_sqe' of https://github.com/ioquatix/liburing man/io_uring_register.2: fix typo man/io_uring_register.2: add newer registration opcodes man/io_uring.7: document CQE flags Add io_uring_register_file_alloc_range.3 man page man/io_uring_register.2: document IORING_REGISTER_FILE_ALLOC_RANGE test/recv-multishot.c: check for error specifically when submitting src/queue: don't wait twice if looping in _io_uring_get_cqe() Revert "man/io_uring_submit_and_wait_timeout.3: fix return value description" Add io_uring_submit_and_wait_timeout() test man: io_uring_submit_and_wait(_timeout) updates Merge branch 'submit-and-wait-ts' Merge branch 'frankreh/link_io_uring_register_files_sparse' of https://github.com/FrankReh/liburing Merge branch 'io_uring_uapi' of https://github.com/metze-samba/liburing Merge branch 'io_uring_prep_send_set_addr' of https://github.com/metze-samba/liburing Merge branch 'frankreh/man-accept-2' of https://github.com/FrankReh/liburing Roughly fill in CHANGELOG for the 2.3 release man/io_uring_register.2: clarify that > 0 can also be success Jiri Slaby (1): test/xattr: don't rely on NUL-termination Johannes Rudolph (1): man: fix typo in IORING_SETUP_CQE32 description Kanchan Joshi (1): test/io_uring_passthrough: add test case for submission failure Pavel Begunkov (42): update io_uring.h with file slot alloc ranges alloc range helpers file-register: fix return codes tests: print file-register errors to stderr test range file alloc examples: add a simple single-shot poll benchmark tests: test IORING_SETUP_SINGLE_ISSUER man/io_uring_setup.2: document IORING_SETUP_SINGLE_ISSUER io_uring.h: sync with kernel for zc send and notifiers liburing: add zc send and notif helpers tests: add tests for zerocopy send and notifications examples: add a zerocopy send example liburing: improve fallocate typecasting test/zc: improve error messages tests/zc: test tcp test/zc: allocate buffers dynamically test/zc: handle short rx test/zc: recv asynchronously test/zc: test short zc send tests: verify that send addr is copied when async zc: adjust sendzc to the simpler uapi test: test iowq zc sends examples: adjust zc bench to the new uapi tests/zc: move send size calc into do_test_inet_send tests/zc: use io_uring for rx tests/zc: fix udp testing tests/zc: name buffer flavours tests/zc: skip tcp w/ addr man/io_uring_enter.2: document IORING_OP_SEND_ZC tests: fixup defer-taskrun.c after api change examples: fix sendzc notif handling test: fix zc tests man: note about notification generation tests: add sendmsg_zc tests tests: test async_data double-free with sendzc tests: a small fix for zc tests liburing: add more zc helpers tests: fix zc support checks tests: use only UDP/TCP for zc testing io_uring_enter.2: add sendzc -EOPNOTSUPP note io_uring_enter.2: document IORING_RECVSEND_POLL_FIRST io_uring_enter.2: document IORING_RECVSEND_FIXED_BUF Samuel Williams (3): Fix typo in io_uring_get_sqe man page Add man page for `io_uring_prep_nop` Clarify that user_data is neither set nor cleared Stefan Metzmacher (2): fix const warning in io_uring_prep_send_set_addr() uapi: Sync with the kernel in order to build systems without linux/time_types.h Zifeng Deng (1): man: fix SYNOPSIS of `io_uring_register_sync_cancel` ilikdoge (2): man/io_uring_enter.2: Add IORING_OP_SOCKET to the list of opcodes man/io_uring_submit_and_wait_timeout.3: fix return value description