The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH rcu 0/1] RCU tasks updates for v6.8
@ 2023-12-12 17:43 Neeraj Upadhyay (AMD)
  2023-12-12 17:43 ` [PATCH rcu 1/1] rcu-tasks: Mark RCU Tasks accesses to current->rcu_tasks_idle_cpu Neeraj Upadhyay (AMD)
  0 siblings, 1 reply; 2+ messages in thread
From: Neeraj Upadhyay (AMD) @ 2023-12-12 17:43 UTC (permalink / raw)
  To: rcu; +Cc: linux-kernel, kernel-team, rostedt, paulmck, Neeraj.Upadhyay

Hello,

This series contains RCU tasks updates:

1.      rcu-tasks: Mark RCU Tasks accesses to current->rcu_tasks_idle_cpu.


Thanks
Neeraj

------------------------------------------------------------------------

 tasks.h |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH rcu 1/1] rcu-tasks: Mark RCU Tasks accesses to current->rcu_tasks_idle_cpu
  2023-12-12 17:43 [PATCH rcu 0/1] RCU tasks updates for v6.8 Neeraj Upadhyay (AMD)
@ 2023-12-12 17:43 ` Neeraj Upadhyay (AMD)
  0 siblings, 0 replies; 2+ messages in thread
From: Neeraj Upadhyay (AMD) @ 2023-12-12 17:43 UTC (permalink / raw)
  To: rcu
  Cc: linux-kernel, kernel-team, rostedt, paulmck, Neeraj.Upadhyay,
	Boqun Feng, Joel Fernandes, Neeraj Upadhyay

From: "Paul E. McKenney" <paulmck@kernel.org>

The task_struct structure's ->rcu_tasks_idle_cpu can be concurrently
read and written from the RCU Tasks grace-period kthread and from the
CPU on which the task_struct structure's task is running.  This commit
therefore marks the accesses appropriately.

Reported-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Neeraj Upadhyay (AMD) <neeraj.iitr10@gmail.com>
---
 kernel/rcu/tasks.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/rcu/tasks.h b/kernel/rcu/tasks.h
index f54d5782eca0..732ad5b39946 100644
--- a/kernel/rcu/tasks.h
+++ b/kernel/rcu/tasks.h
@@ -975,7 +975,7 @@ static void check_holdout_task(struct task_struct *t,
 	    t->rcu_tasks_nvcsw != READ_ONCE(t->nvcsw) ||
 	    !rcu_tasks_is_holdout(t) ||
 	    (IS_ENABLED(CONFIG_NO_HZ_FULL) &&
-	     !is_idle_task(t) && t->rcu_tasks_idle_cpu >= 0)) {
+	     !is_idle_task(t) && READ_ONCE(t->rcu_tasks_idle_cpu) >= 0)) {
 		WRITE_ONCE(t->rcu_tasks_holdout, false);
 		list_del_init(&t->rcu_tasks_holdout_list);
 		put_task_struct(t);
@@ -993,7 +993,7 @@ static void check_holdout_task(struct task_struct *t,
 		 t, ".I"[is_idle_task(t)],
 		 "N."[cpu < 0 || !tick_nohz_full_cpu(cpu)],
 		 t->rcu_tasks_nvcsw, t->nvcsw, t->rcu_tasks_holdout,
-		 t->rcu_tasks_idle_cpu, cpu);
+		 data_race(t->rcu_tasks_idle_cpu), cpu);
 	sched_show_task(t);
 }
 
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-12-12 17:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-12 17:43 [PATCH rcu 0/1] RCU tasks updates for v6.8 Neeraj Upadhyay (AMD)
2023-12-12 17:43 ` [PATCH rcu 1/1] rcu-tasks: Mark RCU Tasks accesses to current->rcu_tasks_idle_cpu Neeraj Upadhyay (AMD)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox