Patch "rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop" has been added to the 5.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop

to the 5.14-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     rcu-tasks-move-rtgs_wait_cbs-to-beginning-of-rcu_tas.patch
and it can be found in the queue-5.14 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 928e6df33448cb348f03a9a76d64c87444139d5a
Author: Paul E. McKenney <paulmck@xxxxxxxxxx>
Date:   Wed Aug 11 09:07:44 2021 -0700

    rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop
    
    [ Upstream commit 0db7c32ad3160ae06f497d48a74bd46a2a35e6bf ]
    
    Early in debugging, it made some sense to differentiate the first
    iteration from subsequent iterations, but now this just causes confusion.
    This commit therefore moves the "set_tasks_gp_state(rtp, RTGS_WAIT_CBS)"
    statement to the beginning of the "for" loop in rcu_tasks_kthread().
    
    Reported-by: Neeraj Upadhyay <neeraju@xxxxxxxxxxxxxx>
    Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index 8536c55df5142..fd3909c59b6a4 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -197,6 +197,7 @@ static int __noreturn rcu_tasks_kthread(void *arg)
 	 * This loop is terminated by the system going down.  ;-)
 	 */
 	for (;;) {
+		set_tasks_gp_state(rtp, RTGS_WAIT_CBS);
 
 		/* Pick up any new callbacks. */
 		raw_spin_lock_irqsave(&rtp->cbs_lock, flags);
@@ -236,8 +237,6 @@ static int __noreturn rcu_tasks_kthread(void *arg)
 		}
 		/* Paranoid sleep to keep this from entering a tight loop */
 		schedule_timeout_idle(rtp->gp_sleep);
-
-		set_tasks_gp_state(rtp, RTGS_WAIT_CBS);
 	}
 }
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux