* Re: [RFC PATCH v5 8/9] sched/fair: Steal work from an overloaded CPU when CPU goes idle
[not found] <20260320055920.2518389-9-chenjinghuang2@huawei.com>
@ 2026-03-23 0:14 ` kernel test robot
2026-03-23 4:51 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-03-23 0:14 UTC (permalink / raw)
To: Chen Jinghuang; +Cc: llvm, oe-kbuild-all
Hi Chen,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v7.0-rc5]
[cannot apply to tip/sched/core peterz-queue/sched/core next-20260320]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Chen-Jinghuang/sched-Provide-sparsemask-a-reduced-contention-bitmap/20260321-084706
base: linus/master
patch link: https://lore.kernel.org/r/20260320055920.2518389-9-chenjinghuang2%40huawei.com
patch subject: [RFC PATCH v5 8/9] sched/fair: Steal work from an overloaded CPU when CPU goes idle
config: arm-randconfig-001-20260323 (https://download.01.org/0day-ci/archive/20260323/202603230856.FTVv1O5z-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project b1cf9b0835d214bcbd0d6e8882760c07cfccb298)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260323/202603230856.FTVv1O5z-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603230856.FTVv1O5z-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/sched/fair.c:13272:3: warning: releasing raw_spinlock 'rq_lockp(dst_rq)' that was not held [-Wthread-safety-analysis]
13272 | raw_spin_rq_unlock(dst_rq);
| ^
>> kernel/sched/fair.c:13293:2: warning: raw_spinlock 'rq_lockp(dst_rq)' is not held on every path through here [-Wthread-safety-analysis]
13293 | local_irq_restore(rf.flags);
| ^
include/linux/irqflags.h:223:8: note: expanded from macro 'local_irq_restore'
223 | if (!raw_irqs_disabled_flags(flags)) \
| ^
include/linux/irqflags.h:188:13: note: expanded from macro 'raw_irqs_disabled_flags'
188 | typecheck(unsigned long, flags); \
| ^
kernel/sched/fair.c:13286:3: note: raw_spinlock acquired here
13286 | raw_spin_rq_lock(dst_rq);
| ^
kernel/sched/fair.c:13310:12: error: redefinition of 'try_steal'
13310 | static int try_steal(struct rq *dst_rq, struct rq_flags *dst_rf)
| ^
kernel/sched/fair.c:5195:19: note: previous definition is here
5195 | static inline int try_steal(struct rq *this_rq, struct rq_flags *rf)
| ^
2 warnings and 1 error generated.
vim +13272 kernel/sched/fair.c
13250
13251 /*
13252 * Attempt to migrate a CFS task from @src_cpu to @dst_rq. @locked indicates
13253 * whether @dst_rq is already locked on entry. This function may lock or
13254 * unlock @dst_rq, and updates @locked to indicate the locked state on return.
13255 * The locking protocol is based on idle_balance().
13256 * Returns 1 on success and 0 on failure.
13257 */
13258 static int steal_from(struct rq *dst_rq, struct rq_flags *dst_rf, bool *locked,
13259 int src_cpu)
13260 {
13261 struct task_struct *p;
13262 struct rq_flags rf;
13263 int stolen = 0;
13264 int dst_cpu = dst_rq->cpu;
13265 struct rq *src_rq = cpu_rq(src_cpu);
13266
13267 if (dst_cpu == src_cpu || src_rq->cfs.h_nr_runnable < 2)
13268 return 0;
13269
13270 if (*locked) {
13271 rq_unpin_lock(dst_rq, dst_rf);
13272 raw_spin_rq_unlock(dst_rq);
13273 *locked = false;
13274 }
13275 rq_lock_irqsave(src_rq, &rf);
13276 update_rq_clock(src_rq);
13277
13278 if (src_rq->cfs.h_nr_runnable < 2 || !cpu_active(src_cpu))
13279 p = NULL;
13280 else
13281 p = detach_next_task(&src_rq->cfs, dst_rq);
13282
13283 rq_unlock(src_rq, &rf);
13284
13285 if (p) {
13286 raw_spin_rq_lock(dst_rq);
13287 rq_repin_lock(dst_rq, dst_rf);
13288 *locked = true;
13289 update_rq_clock(dst_rq);
13290 attach_task(dst_rq, p);
13291 stolen = 1;
13292 }
13293 local_irq_restore(rf.flags);
13294
13295 return stolen;
13296 }
13297
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [RFC PATCH v5 8/9] sched/fair: Steal work from an overloaded CPU when CPU goes idle
[not found] <20260320055920.2518389-9-chenjinghuang2@huawei.com>
2026-03-23 0:14 ` [RFC PATCH v5 8/9] sched/fair: Steal work from an overloaded CPU when CPU goes idle kernel test robot
@ 2026-03-23 4:51 ` kernel test robot
1 sibling, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-03-23 4:51 UTC (permalink / raw)
To: Chen Jinghuang; +Cc: llvm, oe-kbuild-all
Hi Chen,
[This is a private test report for your RFC patch.]
kernel test robot noticed the following build warnings:
[auto build test WARNING on linus/master]
[also build test WARNING on v7.0-rc5]
[cannot apply to tip/sched/core peterz-queue/sched/core next-20260320]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Chen-Jinghuang/sched-Provide-sparsemask-a-reduced-contention-bitmap/20260321-084706
base: linus/master
patch link: https://lore.kernel.org/r/20260320055920.2518389-9-chenjinghuang2%40huawei.com
patch subject: [RFC PATCH v5 8/9] sched/fair: Steal work from an overloaded CPU when CPU goes idle
config: riscv-allmodconfig (https://download.01.org/0day-ci/archive/20260323/202603231203.g4WzI66q-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project b1cf9b0835d214bcbd0d6e8882760c07cfccb298)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260323/202603231203.g4WzI66q-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603231203.g4WzI66q-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/sched/fair.c:13272:3: warning: releasing raw_spinlock 'rq_lockp(dst_rq)' that was not held [-Wthread-safety-analysis]
13272 | raw_spin_rq_unlock(dst_rq);
| ^
kernel/sched/fair.c:13293:2: warning: raw_spinlock 'rq_lockp(dst_rq)' is not held on every path through here [-Wthread-safety-analysis]
13293 | local_irq_restore(rf.flags);
| ^
include/linux/irqflags.h:223:8: note: expanded from macro 'local_irq_restore'
223 | if (!raw_irqs_disabled_flags(flags)) \
| ^
include/linux/irqflags.h:188:13: note: expanded from macro 'raw_irqs_disabled_flags'
188 | typecheck(unsigned long, flags); \
| ^
kernel/sched/fair.c:13286:3: note: raw_spinlock acquired here
13286 | raw_spin_rq_lock(dst_rq);
| ^
>> kernel/sched/fair.c:13366:2: warning: raw_spinlock 'rq_lockp(this_rq)' is not held on every path through here [-Wthread-safety-analysis]
13366 | stolen |= (dst_rq->cfs.h_nr_runnable > 0);
| ^
kernel/sched/fair.c:13363:3: note: raw_spinlock acquired here
13363 | raw_spin_rq_lock(dst_rq);
| ^
3 warnings generated.
vim +13366 kernel/sched/fair.c
13350
13351 /* Accept any suitable task in the LLC */
13352
13353 sparsemask_for_each(overload_cpus, dst_cpu, src_cpu) {
13354 if (steal_from(dst_rq, dst_rf, &locked, src_cpu)) {
13355 stolen = 1;
13356 goto out;
13357 }
13358 }
13359
13360 out:
13361 rcu_read_unlock();
13362 if (!locked) {
13363 raw_spin_rq_lock(dst_rq);
13364 rq_repin_lock(dst_rq, dst_rf);
13365 }
13366 stolen |= (dst_rq->cfs.h_nr_runnable > 0);
13367 if (dst_rq->nr_running != dst_rq->cfs.h_nr_runnable)
13368 stolen = -1;
13369 return stolen;
13370 }
13371
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread