]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
sched/cache: Fix rcu warning when accessing sd_llc domain
authorChen Yu <yu.c.chen@intel.com>
Wed, 13 May 2026 20:39:18 +0000 (13:39 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 18 May 2026 19:33:16 +0000 (21:33 +0200)
rcu_dereference_all() should be used to access the
sd_llc domain under RCU protection.

This bug was reported by sashiko.

Fixes: df0d98475954 ("sched/cache: Introduce infrastructure for cache-aware load balancing")
Signed-off-by: Chen Yu <yu.c.chen@intel.com>
Co-developed-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/2dc49455e861215d8059a1c877953f0b95990038.1778703694.git.tim.c.chen@linux.intel.com
kernel/sched/fair.c

index 76ac6a8100fca86db61a91bdd75f5fa59ee2b640..c549ad489c6dbb0d43456dad0123fa84e20fd8ba 100644 (file)
@@ -1814,7 +1814,7 @@ static void task_cache_work(struct callback_head *work)
 
                for_each_cpu(cpu, cpus) {
                        /* XXX sched_cluster_active */
-                       struct sched_domain *sd = per_cpu(sd_llc, cpu);
+                       struct sched_domain *sd = rcu_dereference_all(per_cpu(sd_llc, cpu));
                        unsigned long occ, m_occ = 0, a_occ = 0;
                        int m_cpu = -1, i;