Re: [PATCH] sched/debug, sys_info: Introduce SYS_INFO_CPU_RUNQUEUES
From: Aaron Tomlin
Date: Fri Sep 11 2026 - 21:00:41 EST
On Sat, Sep 12, 2026 at 04:45:18AM +0800, kernel test robot wrote:
> Hi Aaron,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on akpm-mm/mm-everything]
> [also build test WARNING on tip/sched/core akpm-mm/mm-nonmm-unstable linus/master v7.3-rc2 next-20260909]
> [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/Aaron-Tomlin/sched-debug-sys_info-Introduce-SYS_INFO_CPU_RUNQUEUES/20260910-222844
> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link: https://lore.kernel.org/r/20260911022844.521413-1-atomlin%40atomlin.com
> patch subject: [PATCH] sched/debug, sys_info: Introduce SYS_INFO_CPU_RUNQUEUES
> config: microblaze-randconfig-r132-20260911 (https://download.01.org/0day-ci/archive/20260912/202609120421.J3jtss6v-lkp@xxxxxxxxx/config)
> compiler: microblaze-linux-gcc (GCC) 8.5.0
> sparse: v0.6.5-rc1
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260912/202609120421.J3jtss6v-lkp@xxxxxxxxx/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@xxxxxxxxx>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202609120421.J3jtss6v-lkp@xxxxxxxxx/
>
> sparse warnings: (new ones prefixed by >>)
> kernel/sched/build_utility.c: note: in included file:
> kernel/sched/debug.c:868:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/debug.c:868:17: sparse: expected struct sched_domain *[assigned] sd
> kernel/sched/debug.c:868:17: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/debug.c:1220:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu *curr @@
> kernel/sched/debug.c:1220:9: sparse: expected struct task_struct *tsk
> kernel/sched/debug.c:1220:9: sparse: got struct task_struct [noderef] __rcu *curr
> kernel/sched/debug.c:1220:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *tsk @@ got struct task_struct [noderef] __rcu *curr @@
> kernel/sched/debug.c:1220:9: sparse: expected struct task_struct *tsk
> kernel/sched/debug.c:1220:9: sparse: got struct task_struct [noderef] __rcu *curr
> >> kernel/sched/debug.c:1355:30: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
> kernel/sched/debug.c:1355:30: sparse: expected struct task_struct *curr
> kernel/sched/debug.c:1355:30: sparse: got struct task_struct [noderef] __rcu *curr
> >> kernel/sched/debug.c:1360:30: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu * @@
> kernel/sched/debug.c:1360:30: sparse: expected struct task_struct *curr
> kernel/sched/debug.c:1360:30: sparse: got struct task_struct [noderef] __rcu *
> kernel/sched/build_utility.c: note: in included file:
> kernel/sched/topology.c:118:56: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:118:56: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:118:56: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:137:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:137:60: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:137:60: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:160:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:160:20: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:160:20: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:470:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct perf_domain *pd @@ got struct perf_domain [noderef] __rcu *pd @@
> kernel/sched/topology.c:470:19: sparse: expected struct perf_domain *pd
> kernel/sched/topology.c:470:19: sparse: got struct perf_domain [noderef] __rcu *pd
> kernel/sched/topology.c:654:49: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:654:49: sparse: expected struct sched_domain *parent
> kernel/sched/topology.c:654:49: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:753:50: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:753:50: sparse: expected struct sched_domain *parent
> kernel/sched/topology.c:753:50: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:775:55: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain [noderef] __rcu *[noderef] __rcu child @@ got struct sched_domain *[assigned] tmp @@
> kernel/sched/topology.c:775:55: sparse: expected struct sched_domain [noderef] __rcu *[noderef] __rcu child
> kernel/sched/topology.c:775:55: sparse: got struct sched_domain *[assigned] tmp
> kernel/sched/topology.c:788:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:788:29: sparse: expected struct sched_domain *[assigned] tmp
> kernel/sched/topology.c:788:29: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:793:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:793:20: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:793:20: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:826:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *sd @@
> kernel/sched/topology.c:826:13: sparse: expected struct sched_domain *[assigned] tmp
> kernel/sched/topology.c:826:13: sparse: got struct sched_domain [noderef] __rcu *sd
> kernel/sched/topology.c:1069:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sdp @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:1069:38: sparse: expected struct sched_domain *sdp
> kernel/sched/topology.c:1069:38: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:1076:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sdp @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:1076:21: sparse: expected struct sched_domain *sdp
> kernel/sched/topology.c:1076:21: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:1223:70: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1223:70: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:1223:70: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1252:59: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1252:59: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:1252:59: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1298:57: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1298:57: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:1298:57: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1300:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sibling @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1300:25: sparse: expected struct sched_domain *sibling
> kernel/sched/topology.c:1300:25: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1308:55: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1308:55: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:1308:55: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1310:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sibling @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1310:25: sparse: expected struct sched_domain *sibling
> kernel/sched/topology.c:1310:25: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1380:62: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1380:62: sparse: expected struct sched_domain *sd
> kernel/sched/topology.c:1380:62: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1484:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
> kernel/sched/topology.c:1484:40: sparse: expected struct sched_domain *child
> kernel/sched/topology.c:1484:40: sparse: got struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1620:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:1620:9: sparse: expected struct sched_domain *[assigned] sd
> kernel/sched/topology.c:1620:9: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:1877:52: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:1877:52: sparse: expected struct sched_domain *[assigned] sd
> kernel/sched/topology.c:1877:52: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:1987:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain [noderef] __rcu *child @@ got struct sched_domain *child @@
> kernel/sched/topology.c:1987:43: sparse: expected struct sched_domain [noderef] __rcu *child
> kernel/sched/topology.c:1987:43: sparse: got struct sched_domain *child
> kernel/sched/topology.c:2791:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain [noderef] __rcu *parent @@ got struct sched_domain *sd @@
> kernel/sched/topology.c:2791:31: sparse: expected struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:2791:31: sparse: got struct sched_domain *sd
> kernel/sched/topology.c:2919:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *[noderef] __rcu parent @@
> kernel/sched/topology.c:2919:16: sparse: expected struct sched_domain *parent
> kernel/sched/topology.c:2919:16: sparse: got struct sched_domain [noderef] __rcu *[noderef] __rcu parent
> kernel/sched/topology.c:2921:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:2921:24: sparse: expected struct sched_domain *parent
> kernel/sched/topology.c:2921:24: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:2926:16: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:2926:16: sparse: expected struct sched_domain *parent
> kernel/sched/topology.c:2926:16: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:2931:24: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:2931:24: sparse: expected struct sched_domain *parent
> kernel/sched/topology.c:2931:24: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:3008:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd_asym @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:3008:25: sparse: expected struct sched_domain *[assigned] sd_asym
> kernel/sched/topology.c:3008:25: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:3143:57: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:3143:57: sparse: expected struct sched_domain *[assigned] sd
> kernel/sched/topology.c:3143:57: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:3165:28: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:3165:28: sparse: expected struct sched_domain *[assigned] sd
> kernel/sched/topology.c:3165:28: sparse: got struct sched_domain [noderef] __rcu *parent
> kernel/sched/topology.c:3191:57: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
> kernel/sched/topology.c:3191:57: sparse: expected struct sched_domain *[assigned] sd
> kernel/sched/topology.c:3191:57: sparse: got struct sched_domain [noderef] __rcu *parent
Hi Andrew, Peter,
Thanks test robot! I will fix these __rcu Sparse warnings
(make C=2 kernel/sched/) on rq->curr using rcu_dereference() and send a
version 2.
Kind regards,
--
Aaron Tomlin