[PATCH liburing v3 00/11] Defer taskrun changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This series adds support to liburing for the IORING_SETUP_DEFER_TASKRUN flag.

This flag needs a couple of new API calls to force a call to get events for
users that are polling the io_uring fd (or a registered eventfd).

The second half of the series is a bit mixed and includes some documentation
fixes, overflow cleanups and test cleanups. I sent these a couple of months
ago and forgot about it, but now it does depend on the new API so it needs to
be ordered.
I can send it separately if you like.

Patches:

1 copies the definition from the kernel include file
2 introduces new APIs required for this feature
3/4/5 add tests for IORING_SETUP_DEFER_TASKRUN

6/7/8 clean and update existing documentation to match upstream
9 exposes the overflow state to the application
10 uses this and tests overflow functionality
11 gives an explicit warning if there is a short read in file-verify

Changes since v2:
 - Add documentation and .map file for new API
 - remove shutdown test

Changes since v1:
 - update tests to require IORING_SETUP_SINGLE_ISSUER
 - add docs for IORING_SETUP_DEFER_TASKRUN
 - add shutdown test

Dylan Yudaken (11):
  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

 man/io_uring_cq_has_overflow.3       |  25 ++
 man/io_uring_enter.2                 |  24 +-
 man/io_uring_get_events.3            |  33 +++
 man/io_uring_setup.2                 |  30 ++-
 man/io_uring_submit_and_get_events.3 |  31 +++
 src/include/liburing.h               |  12 +
 src/include/liburing/io_uring.h      |   7 +
 src/liburing.map                     |   2 +
 src/queue.c                          |  26 ++-
 test/Makefile                        |   1 +
 test/cq-overflow.c                   | 243 ++++++++++++++++++-
 test/defer-taskrun.c                 | 333 +++++++++++++++++++++++++++
 test/eventfd-disable.c               |  33 ++-
 test/file-verify.c                   |   4 +
 test/helpers.c                       |  17 +-
 test/helpers.h                       |   2 +
 test/iopoll.c                        |  17 +-
 test/multicqes_drain.c               |  50 +++-
 test/poll-mshot-overflow.c           |  40 +++-
 test/recv-multishot.c                |  33 ++-
 test/rsrc_tags.c                     |  10 +-
 21 files changed, 922 insertions(+), 51 deletions(-)
 create mode 100644 man/io_uring_cq_has_overflow.3
 create mode 100644 man/io_uring_get_events.3
 create mode 100644 man/io_uring_submit_and_get_events.3
 create mode 100644 test/defer-taskrun.c


base-commit: 3bd7d6b27e6b7d7950bba1491bc9c385378fe4dd
-- 
2.30.2





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux