Skip to content

Commit

Permalink
io-wq: use __set_notify_signal() to wake workers
Browse files Browse the repository at this point in the history
The only difference between set_notify_signal() and __set_notify_signal()
is that the former checks if it needs to deliver an IPI to force a
reschedule. As the io-wq workers never leave the kernel, and IPI is never
needed, they simply need a wakeup.

Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/20220426014904.60384-4-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Jens Axboe committed Apr 30, 2022
1 parent 3a4b89a commit 6cf5862
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions fs/io-wq.c
Original file line number Diff line number Diff line change
Expand Up @@ -871,7 +871,7 @@ static bool io_wq_for_each_worker(struct io_wqe *wqe,

static bool io_wq_worker_wake(struct io_worker *worker, void *data)
{
set_notify_signal(worker->task);
__set_notify_signal(worker->task);
wake_up_process(worker->task);
return false;
}
Expand Down Expand Up @@ -991,7 +991,7 @@ static bool __io_wq_worker_cancel(struct io_worker *worker,
{
if (work && match->fn(work, match->data)) {
work->flags |= IO_WQ_WORK_CANCEL;
set_notify_signal(worker->task);
__set_notify_signal(worker->task);
return true;
}

Expand Down

0 comments on commit 6cf5862

Please sign in to comment.