Commit 0c4fe008 authored by Pavel Begunkov's avatar Pavel Begunkov Committed by Jens Axboe
Browse files

io_uring: rearrange defer list checks



There should be nothing in the ->work_llist for non DEFER_TASKRUN rings,
so we can skip flag checks and test the list emptiness directly. Also
move it out of io_run_local_work() for inlining.

Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/331d63fd15ca79b35b95c82a82d9246110686392.1672916894.git.asml.silence@gmail.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 6d796c50
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -1343,9 +1343,6 @@ int io_run_local_work(struct io_ring_ctx *ctx)
	bool locked;
	int ret;

	if (llist_empty(&ctx->work_llist))
		return 0;

	__set_current_state(TASK_RUNNING);
	locked = mutex_trylock(&ctx->uring_lock);
	ret = __io_run_local_work(ctx, &locked);
+1 −1
Original line number Diff line number Diff line
@@ -289,7 +289,7 @@ static inline int io_run_task_work_ctx(struct io_ring_ctx *ctx)
	int ret = 0;
	int ret2;

	if (ctx->flags & IORING_SETUP_DEFER_TASKRUN)
	if (!llist_empty(&ctx->work_llist))
		ret = io_run_local_work(ctx);

	/* want to run this after in case more is added */