rcu-tasks: Move rcu_tasks_trace_pertask() before rcu_tasks_trace_pregp_step()
authorPaul E. McKenney <paulmck@kernel.org>
Wed, 18 May 2022 00:11:37 +0000 (17:11 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 20 Jun 2022 16:22:29 +0000 (09:22 -0700)
This is a code-motion-only commit that moves rcu_tasks_trace_pertask()
to precede rcu_tasks_trace_pregp_step(), so that the latter will be
able to invoke the other without forward references.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Neeraj Upadhyay <quic_neeraju@quicinc.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Martin KaFai Lau <kafai@fb.com>
Cc: KP Singh <kpsingh@kernel.org>
kernel/rcu/tasks.h

index 6f4b89f9517ef57a71ac768565a52e2ce664c162..66d8473f1bda10bfd21319b9d69f77838349a1df 100644 (file)
@@ -1449,20 +1449,6 @@ static void trc_wait_for_one_reader(struct task_struct *t,
        }
 }
 
-/* Initialize for a new RCU-tasks-trace grace period. */
-static void rcu_tasks_trace_pregp_step(void)
-{
-       int cpu;
-
-       // There shouldn't be any old IPIs, but...
-       for_each_possible_cpu(cpu)
-               WARN_ON_ONCE(per_cpu(trc_ipi_to_cpu, cpu));
-
-       // Disable CPU hotplug across the tasklist scan.
-       // This also waits for all readers in CPU-hotplug code paths.
-       cpus_read_lock();
-}
-
 /* Do first-round processing for the specified task. */
 static void rcu_tasks_trace_pertask(struct task_struct *t,
                                    struct list_head *hop)
@@ -1478,6 +1464,20 @@ static void rcu_tasks_trace_pertask(struct task_struct *t,
        trc_wait_for_one_reader(t, hop);
 }
 
+/* Initialize for a new RCU-tasks-trace grace period. */
+static void rcu_tasks_trace_pregp_step(void)
+{
+       int cpu;
+
+       // There shouldn't be any old IPIs, but...
+       for_each_possible_cpu(cpu)
+               WARN_ON_ONCE(per_cpu(trc_ipi_to_cpu, cpu));
+
+       // Disable CPU hotplug across the tasklist scan.
+       // This also waits for all readers in CPU-hotplug code paths.
+       cpus_read_lock();
+}
+
 /*
  * Do intermediate processing between task and holdout scans and
  * pick up the idle tasks.