From: Jens Axboe <axboe@kernel.dk>
To: linux-block@vger.kernel.org
Cc: tj@kernel.org, peterz@infradead.org, mingo@kernel.org
Subject: [PATCHSET] Replace io_uring workqueues with io-wq
Date: Thu, 24 Oct 2019 07:44:37 -0600 [thread overview]
Message-ID: <20191024134439.28498-1-axboe@kernel.dk> (raw)
Most of the justification for this work is done in the commit messages
themselves, but the tldr is that there are various bits of functionality
that io_uring needs that workqueues don't (and can't) provide. Hence
this adds a small replacement thread pool implementation that caters to
the needs of io_uring, both current and future ones.
Hopefully the sched core changes are palatable. io-wq uses the same
sched in/out hooks as workqueue, and if the task isn't either a
workqueue or io-wq worker, there should be no extra overhead there.
Patches are on top of my for-5.5/io_uring branch, and can also be found
here:
http://git.kernel.dk/cgit/linux-block/log/?h=for-5.5/io_uring-wq
This passes io_uring IO testing and repeated runs of the liburing
regressions suite, and passes tests that would previously deadlock.
fs/Kconfig | 3 +
fs/Makefile | 1 +
fs/io-wq.c | 790 ++++++++++++++++++++++++++++++++++++++++++
fs/io-wq.h | 55 +++
fs/io_uring.c | 402 +++++----------------
include/linux/sched.h | 1 +
init/Kconfig | 1 +
kernel/sched/core.c | 16 +-
8 files changed, 948 insertions(+), 321 deletions(-)
--
Jens Axboe
next reply other threads:[~2019-10-24 13:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-24 13:44 Jens Axboe [this message]
2019-10-24 13:44 ` [PATCH 1/2] io-wq: small threadpool implementation for io_uring Jens Axboe
2019-10-24 13:44 ` [PATCH 2/2] io_uring: replace workqueue usage with io-wq Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191024134439.28498-1-axboe@kernel.dk \
--to=axboe@kernel.dk \
--cc=linux-block@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.