CHANGELOG 4.5 KB

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