[PATCHSET v2 0/3] io_uring/io-wq: support unbounded work

Jens Axboe
2019-11-07T18:29:27Z

This is v2 of this patchset, but this one takes a different approach. I
wasn't that crazy about adding a separate io-wq so each io_ring needs to
have two, so this one instead adds specific support to io-wq for bounded
and unbounded work. io_wq_create() now takes both limits, and any user of
this must set work->flags |= IO_WQ_WORK_UNBOUND to queue unbounded work.
By default, work is assumed to be bounded.

Patch 1 is just a cleanup I found while doing this, patch 2 adds the
necessary io-wq support, and patch 3 is now much simpler and basically
just adds the switch table from before without having to do anything else.

fs/io-wq.c | 242 ++++++++++++++++++++++++++++++++++----------------
fs/io-wq.h | 4 +-
fs/io_uring.c | 22 ++++-
3 files changed, 184 insertions(+), 84 deletions(-)

--
Jens Axboe