io_uring/io_uring.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
io_uring uses call_rcu in the case it needs to signal an eventfd as a
result of an eventfd signal, since recursing eventfd signals are not
allowed. This should be calling the new call_rcu_hurry API to not delay
the signal.
Signed-off-by: Dylan Yudaken <dylany@meta.com>
Cc: Joel Fernandes (Google) <joel@joelfernandes.org>
Cc: Paul E. McKenney <paulmck@kernel.org>
---
io_uring/io_uring.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index b521186efa5c..2cb8c665bab1 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -538,7 +538,7 @@ static void io_eventfd_signal(struct io_ring_ctx *ctx)
} else {
atomic_inc(&ev_fd->refs);
if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops))
- call_rcu(&ev_fd->rcu, io_eventfd_ops);
+ call_rcu_hurry(&ev_fd->rcu, io_eventfd_ops);
else
atomic_dec(&ev_fd->refs);
}
base-commit: 041fae9c105ae342a4245cf1e0dc56a23fbb9d3c
--
2.30.2
On Thu, 15 Dec 2022 10:41:38 -0800, Dylan Yudaken wrote: > io_uring uses call_rcu in the case it needs to signal an eventfd as a > result of an eventfd signal, since recursing eventfd signals are not > allowed. This should be calling the new call_rcu_hurry API to not delay > the signal. > > Signed-off-by: Dylan Yudaken <dylany@meta.com> > > [...] Applied, thanks! [1/1] io_uring: use call_rcu_hurry if signaling an eventfd commit: de8f0209fe8064172a86a61537a7b21d6e5334ad Best regards, -- Jens Axboe
On Thu, Dec 15, 2022 at 1:49 PM Jens Axboe <axboe@kernel.dk> wrote: > > > On Thu, 15 Dec 2022 10:41:38 -0800, Dylan Yudaken wrote: > > io_uring uses call_rcu in the case it needs to signal an eventfd as a > > result of an eventfd signal, since recursing eventfd signals are not > > allowed. This should be calling the new call_rcu_hurry API to not delay > > the signal. > > > > Signed-off-by: Dylan Yudaken <dylany@meta.com> > > > > [...] > > Applied, thanks! > > [1/1] io_uring: use call_rcu_hurry if signaling an eventfd > commit: de8f0209fe8064172a86a61537a7b21d6e5334ad Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org> thanks, - Joel
On Thu, Dec 15, 2022 at 10:41:38AM -0800, Dylan Yudaken wrote: > io_uring uses call_rcu in the case it needs to signal an eventfd as a > result of an eventfd signal, since recursing eventfd signals are not > allowed. This should be calling the new call_rcu_hurry API to not delay > the signal. > > Signed-off-by: Dylan Yudaken <dylany@meta.com> > > Cc: Joel Fernandes (Google) <joel@joelfernandes.org> > Cc: Paul E. McKenney <paulmck@kernel.org> Looks good! Acked-by: Paul E. McKenney <paulmck@kernel.org> > --- > io_uring/io_uring.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c > index b521186efa5c..2cb8c665bab1 100644 > --- a/io_uring/io_uring.c > +++ b/io_uring/io_uring.c > @@ -538,7 +538,7 @@ static void io_eventfd_signal(struct io_ring_ctx *ctx) > } else { > atomic_inc(&ev_fd->refs); > if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops)) > - call_rcu(&ev_fd->rcu, io_eventfd_ops); > + call_rcu_hurry(&ev_fd->rcu, io_eventfd_ops); > else > atomic_dec(&ev_fd->refs); > } > > base-commit: 041fae9c105ae342a4245cf1e0dc56a23fbb9d3c > -- > 2.30.2 >
© 2016 - 2025 Red Hat, Inc.