diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-12-17 18:46:33 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-01-21 03:03:59 +0300 |
commit | 895e2ca0f693c672902191747b548bdc56f0c7de (patch) | |
tree | f8584b4eb5a901df37e5c40aea54081e681a624f /fs/io-wq.h | |
parent | eddc7ef52a6b37b7ba3d1c8a8fbb63d5d9914f8a (diff) | |
download | linux-895e2ca0f693c672902191747b548bdc56f0c7de.tar.xz |
io-wq: support concurrent non-blocking work
io-wq assumes that work will complete fast (and not block), so it
doesn't create a new worker when work is enqueued, if we already have
at least one worker running. This is done on the assumption that if work
is running, then it will complete fast.
Add an option to force io-wq to fork a new worker for work queued. This
is signaled by setting IO_WQ_WORK_CONCURRENT on the work item. For that
case, io-wq will create a new worker, even though workers are already
running.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io-wq.h')
-rw-r--r-- | fs/io-wq.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/io-wq.h b/fs/io-wq.h index 04d60ad38dfc..1cd039af8813 100644 --- a/fs/io-wq.h +++ b/fs/io-wq.h @@ -13,6 +13,7 @@ enum { IO_WQ_WORK_INTERNAL = 64, IO_WQ_WORK_CB = 128, IO_WQ_WORK_NO_CANCEL = 256, + IO_WQ_WORK_CONCURRENT = 512, IO_WQ_HASH_SHIFT = 24, /* upper 8 bits are used for hash key */ }; |