diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-11-07 19:41:16 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-11-07 19:41:35 +0100 |
commit | c5def4ab849494d3c97f6c9fc84b2ddb868fe78c (patch) | |
tree | 5009eb525156d82f3e223f43583d4a235e27cb12 /fs/io_uring.c | |
parent | io-wq: io_wqe_run_queue() doesn't need to use list_empty_careful() (diff) | |
download | linux-c5def4ab849494d3c97f6c9fc84b2ddb868fe78c.tar.xz linux-c5def4ab849494d3c97f6c9fc84b2ddb868fe78c.zip |
io-wq: add support for bounded vs unbunded work
io_uring supports request types that basically have two different
lifetimes:
1) Bounded completion time. These are requests like disk reads or writes,
which we know will finish in a finite amount of time.
2) Unbounded completion time. These are generally networked IO, where we
have no idea how long they will take to complete. Another example is
POLL commands.
This patch provides support for io-wq to handle these differently, so we
don't starve bounded requests by tying up workers for too long. By default
all work is bounded, unless otherwise specified in the work item.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to '')
-rw-r--r-- | fs/io_uring.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index 4d89a2f222bf..831bea0fbc75 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -3745,7 +3745,7 @@ static int io_sq_offload_start(struct io_ring_ctx *ctx, /* Do QD, or 4 * CPUS, whatever is smallest */ concurrency = min(ctx->sq_entries, 4 * num_online_cpus()); - ctx->io_wq = io_wq_create(concurrency, ctx->sqo_mm); + ctx->io_wq = io_wq_create(concurrency, ctx->sqo_mm, NULL); if (IS_ERR(ctx->io_wq)) { ret = PTR_ERR(ctx->io_wq); ctx->io_wq = NULL; |