io_uring: run dependent links inline if possible
authorJens Axboe <axboe@kernel.dk>
Sat, 28 Sep 2019 17:36:45 +0000 (11:36 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 29 Oct 2019 16:22:41 +0000 (10:22 -0600)
commitba816ad61fdf31f59f423a773b00bfa2ed38243a
treed3a90388b35fb242b4724a3b07fe76a170f80c90
parentd848074b2f1eb11a38691285f7366bce83087014
io_uring: run dependent links inline if possible

Currently any dependent link is executed from a new workqueue context,
which means that we'll be doing a context switch per link in the chain.
If we are running the completion of the current request from our async
workqueue and find that the next request is a link, then run it directly
from the workqueue context instead of forcing another switch.

This improves the performance of linked SQEs, and reduces the CPU
overhead.

Reviewed-by: Jackie Liu <liuyun01@kylinos.cn>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c