OSDN Git Service

io_uring: optimise INIT_WQ_LIST
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 4 Oct 2021 19:02:50 +0000 (20:02 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 19 Oct 2021 11:49:54 +0000 (05:49 -0600)
The invariant of io_wq_work_list is that it's empty IFF ->first is NULL,
so no need to initially set ->last. With now having more users of the
list it may play a role, i.e. used in each tw iteration and on every
completion flushing.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/c464ab5cab6e46a858c6d39c107e92b3b5291f13.1633373302.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io-wq.h

index 87ba6a7..41bf376 100644 (file)
@@ -38,7 +38,6 @@ struct io_wq_work_list {
 #define wq_list_empty(list)    (READ_ONCE((list)->first) == NULL)
 #define INIT_WQ_LIST(list)     do {                            \
        (list)->first = NULL;                                   \
-       (list)->last = NULL;                                    \
 } while (0)
 
 static inline void wq_list_add_after(struct io_wq_work_node *node,