diff options
author | Jens Axboe <axboe@kernel.dk> | 2023-06-02 08:41:46 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-06-02 08:55:37 -0600 |
commit | c92fcfc2bab54451c4f1481755ea244f413455cb (patch) | |
tree | c4a1474020ef5cf5138b5b34c5f35476ce8a1d49 /io_uring/rw.h | |
parent | f026be0e1e881e3395c3d5418ffc8c2a2203c3f3 (diff) | |
download | lwn-c92fcfc2bab54451c4f1481755ea244f413455cb.tar.gz lwn-c92fcfc2bab54451c4f1481755ea244f413455cb.zip |
io_uring: avoid indirect function calls for the hottest task_work
We use task_work for a variety of reasons, but doing completions or
triggering rety after poll are by far the hottest two. Use the indirect
funtion call wrappers to avoid the indirect function call if
CONFIG_RETPOLINE is set.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/rw.h')
-rw-r--r-- | io_uring/rw.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/io_uring/rw.h b/io_uring/rw.h index 3b733f4b610a..4b89f9659366 100644 --- a/io_uring/rw.h +++ b/io_uring/rw.h @@ -22,3 +22,4 @@ int io_write(struct io_kiocb *req, unsigned int issue_flags); int io_writev_prep_async(struct io_kiocb *req); void io_readv_writev_cleanup(struct io_kiocb *req); void io_rw_fail(struct io_kiocb *req); +void io_req_rw_complete(struct io_kiocb *req, struct io_tw_state *ts); |