Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 353af9c9 authored by Paul Gortmaker's avatar Paul Gortmaker Committed by Paul E. McKenney
Browse files

rcu: Prevent soft-lockup complaints about no-CBs CPUs



The wait_event() at the head of the rcu_nocb_kthread() can result in
soft-lockup complaints if the CPU in question does not register RCU
callbacks for an extended period.  This commit therefore changes
the wait_event() to a wait_event_interruptible().

Reported-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
parent d1c3ed66
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2366,10 +2366,11 @@ static int rcu_nocb_kthread(void *arg)
	for (;;) {
		/* If not polling, wait for next batch of callbacks. */
		if (!rcu_nocb_poll)
			wait_event(rdp->nocb_wq, rdp->nocb_head);
			wait_event_interruptible(rdp->nocb_wq, rdp->nocb_head);
		list = ACCESS_ONCE(rdp->nocb_head);
		if (!list) {
			schedule_timeout_interruptible(1);
			flush_signals(current);
			continue;
		}