CHANGELOG 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. liburing-2.9 release
  2. - Add support for ring resizing
  3. - Add support for registered waits
  4. - Test additions and improvements
  5. - Fix bug with certain ring setups with SQE128 set not fully closing
  6. the ring after io_uring_queue_exit(3) had been called.
  7. - Various man page fixes and updates
  8. liburing-2.8 release
  9. - Add support for incrementally/partially consumed provided buffers,
  10. usable with the provided buffer ring support.
  11. - Add support for foo_and_wait_min_timeout(), where it's possible to
  12. define a minimum timeout for waiting to get batches of completions,
  13. but if that fails, extend for a longer timeout without having any
  14. extra context switches.
  15. - Add support for using different clock sources for completion waiting.
  16. - Great increase coverage of test cases, test case improvements and
  17. fixes.
  18. - Man page updates
  19. - Don't leak _GNU_SOURCE via pkb-config --cflags
  20. - Support for address sanitizer
  21. - Add examples/kdigest sample program
  22. - Add discard helper, test, and man page
  23. liburing-2.7 release
  24. - Man page updates
  25. - Sync with kernel 6.10
  26. - send/recv bundle support
  27. - accept nowait and CQE_F_MORE
  28. - Add and update test cases
  29. - Fix io_uring_queue_init_mem() returning a value that was too small,
  30. potentially causing memory corruption in userspace by overwriting
  31. 64 bytes beyond the returned value. Also add test case for that.
  32. - Add 64-bit length variants of io_uring_prep_{m,f}advise()
  33. - Add BIND/LISTEN support and helpers / man pages
  34. - Add io_uring_enable_rings.3 man page
  35. - Fix bug in io_uring_prep_read_multishot()
  36. - Fixup bundle test cases
  37. - Add fixed-hugepage test case
  38. - Fix io_uring_prep_fixed_fd_install.3 man page
  39. - Note 'len' == 0 requirement in io_uring_prep_send.3 man page
  40. - Fix some test cases for skipping on older kernels
  41. liburing-2.6 release
  42. - Add getsockopt and setsockopt socket commands
  43. - Add test cases to test/hardlink
  44. - Man page fixes
  45. - Add futex support, and test cases
  46. - Add waitid support, and test cases
  47. - Add read multishot, and test cases
  48. - Add support for IORING_SETUP_NO_SQARRAY
  49. - Use IORING_SETUP_NO_SQARRAY as the default
  50. - Add support for IORING_OP_FIXED_FD_INSTALL
  51. - Add io_uring_prep_fixed_fd_install() helper
  52. - Support for napi busy polling
  53. - Improve/add test cases
  54. - Man page fixes
  55. - Add sample 'proxy' example
  56. liburing-2.5 release
  57. - Add support for io_uring_prep_cmd_sock()
  58. - Add support for application allocated ring memory, for placing rings
  59. in huge mem. Available through io_uring_queue_init_mem().
  60. - Add support for registered ring fds
  61. - Various documentation updates
  62. - Various fixes
  63. liburing-2.4 release
  64. - Add io_uring_{major,minor,check}_version() functions.
  65. - Add IO_URING_{MAJOR,MINOR,CHECK}_VERSION() macros.
  66. - FFI support (for non-C/C++ languages integration).
  67. - Add io_uring_prep_msg_ring_cqe_flags() function.
  68. - Deprecate --nolibc configure option.
  69. - CONFIG_NOLIBC is always enabled on x86-64, x86, and aarch64.
  70. - Add support for IORING_REGISTER_USE_REGISTERED_RING and use if available.
  71. - Add io_uring_close_ring_fd() function.
  72. - Add io_uring_prep_msg_ring_fd_alloc function.
  73. - Add io_uring_free_buf_ring() and io_uring_setup_buf_ring() functions.
  74. - Ensure that io_uring_prep_accept_direct(), io_uring_prep_openat_direct(),
  75. io_uring_prep_openat2_direct(), io_uring_prep_msg_ring_fd(), and
  76. io_uring_prep_socket_direct() factor in being called with
  77. IORING_FILE_INDEX_ALLOC for allocating a direct descriptor.
  78. - Add io_uring_prep_sendto() function.
  79. - Add io_uring_prep_cmd_sock() function.
  80. liburing-2.3 release
  81. - Support non-libc build for aarch64.
  82. - Add io_uring_{enter,enter2,register,setup} syscall functions.
  83. - Add sync cancel interface, io_uring_register_sync_cancel().
  84. - Fix return value of io_uring_submit_and_wait_timeout() to match the
  85. man page.
  86. - Improvements to the regression tests
  87. - Add support and test case for passthrough IO
  88. - Add recv and recvmsg multishot helpers and support
  89. - Add documentation and support for IORING_SETUP_DEFER_TASKRUN
  90. - Fix potential missing kernel entry with IORING_SETUP_IOPOLL
  91. - Add support and documentation for zero-copy network transmit
  92. - Various optimizations
  93. - Many cleanups
  94. - Many man page additions and updates
  95. liburing-2.2 release
  96. - Support non-libc builds.
  97. - Optimized syscall handling for x86-64/x86/aarch64.
  98. - Enable non-lib function calls for fast path functions.
  99. - Add support for multishot accept.
  100. - io_uring_register_files() will set RLIMIT_NOFILE if necessary.
  101. - Add support for registered ring fds, io_uring_register_ring_fd(),
  102. reducing the overhead of an io_uring_enter() system call.
  103. - Add support for the message ring opcode.
  104. - Add support for newer request cancelation features.
  105. - Add support for IORING_SETUP_COOP_TASKRUN, which can help reduce the
  106. overhead of io_uring in general. Most applications should set this flag,
  107. see the io_uring_setup.2 man page for details.
  108. - Add support for registering a sparse buffer and file set.
  109. - Add support for a new buffer provide scheme, see
  110. io_uring_register_buf_ring.3 for details.
  111. - Add io_uring_submit_and_wait_timeout() for submitting IO and waiting
  112. for completions with a timeout.
  113. - Add io_uring_prep_{read,write}v2 prep helpers.
  114. - Add io_uring_prep_close_direct() helper.
  115. - Add support for SQE128 and CQE32, which are doubly sized SQE and CQE
  116. rings. This is needed for some cases of the new IORING_OP_URING_CMD,
  117. notably for NVMe passthrough.
  118. - ~5500 lines of man page additions, including adding ~90 new man pages.
  119. - Synced with the 5.19 kernel release, supporting all the features of
  120. 5.19 and earlier.
  121. - 24 new regression test cases, and ~7000 lines of new tests in general.
  122. - General optimizations and fixes.