diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2020-10-27 23:25:38 +0000 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2020-12-09 12:03:59 -0700 |
commit | 0415767e7f0542b3cd1ab270c2e61e90e87aafa2 (patch) | |
tree | d7c0a340f110c4399dac3b278331a3a4c63a690b | |
parent | f2f87370bb6664e5babb6705e886cfb340f163e1 (diff) | |
download | lwn-0415767e7f0542b3cd1ab270c2e61e90e87aafa2.tar.gz lwn-0415767e7f0542b3cd1ab270c2e61e90e87aafa2.zip |
io_uring: rearrange io_kiocb fields for better caching
We've got extra 8 bytes in the 2nd cacheline, put ->fixed_file_refs
there, so inline execution path mostly doesn't touch the 3rd cacheline
for fixed_file requests as well.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r-- | fs/io_uring.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index a0a6d13c0c16..b651d6e6d609 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -713,14 +713,13 @@ struct io_kiocb { u64 user_data; struct io_kiocb *link; + struct percpu_ref *fixed_file_refs; /* * 1. used with ctx->iopoll_list with reads/writes * 2. to track reqs with ->files (see io_op_def::file_table) */ struct list_head inflight_entry; - - struct percpu_ref *fixed_file_refs; struct callback_head task_work; /* for polled requests, i.e. IORING_OP_POLL_ADD and async armed poll */ struct hlist_node hash_node; |