public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* kernel/sched/ext.c:2391:33: sparse: sparse: incorrect type in initializer (different address spaces)
@ 2026-05-04  4:28 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-05-04  4:28 UTC (permalink / raw)
  To: Tejun Heo; +Cc: oe-kbuild-all, linux-kernel, Andrea Righi

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   6d35786de28116ecf78797a62b84e6bf3c45aa5a
commit: 88234b075c3fc23d57406e1867523b6aba783ebf sched_ext: Introduce scx_task_sched[_rcu]()
date:   8 weeks ago
config: arm64-randconfig-r113-20260503 (https://download.01.org/0day-ci/archive/20260504/202605041237.Rron7CNr-lkp@intel.com/config)
compiler: aarch64-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/20260504/202605041237.Rron7CNr-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
| Fixes: 88234b075c3f ("sched_ext: Introduce scx_task_sched[_rcu]()")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605041237.Rron7CNr-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   kernel/sched/rt.c:1513:15: sparse:     expected struct task_struct *donor
   kernel/sched/rt.c:1513:15: sparse:     got struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:1574:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/rt.c:1574:45: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:1574:45: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:1616:39: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/rt.c:1616:39: sparse:     expected struct task_struct *donor
   kernel/sched/rt.c:1616:39: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:1641:64: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:1641:64: sparse:     expected struct task_struct *tsk
   kernel/sched/rt.c:1641:64: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/rt.c:1982:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *task @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:1982:40: sparse:     expected struct task_struct *task
   kernel/sched/rt.c:1982:40: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/rt.c:2005:13: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/rt.c:2005:13: sparse:    struct task_struct *
   kernel/sched/rt.c:2005:13: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:2356:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:2356:54: sparse:     expected struct task_struct *tsk
   kernel/sched/rt.c:2356:54: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/rt.c:2358:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/rt.c:2358:40: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:2358:40: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:2358:62: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/rt.c:2358:62: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:2358:62: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/deadline.c:2922:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/deadline.c:2922:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:2922:23: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:2932:13: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/deadline.c:2932:13: sparse:    struct task_struct *
   kernel/sched/deadline.c:2932:13: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:3038:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/deadline.c:3038:25: sparse:    struct task_struct *
   kernel/sched/deadline.c:3038:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:2539:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct sched_dl_entity const *b @@     got struct sched_dl_entity [noderef] __rcu * @@
   kernel/sched/deadline.c:2539:42: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:2539:42: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:2549:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:2549:38: sparse:     expected struct task_struct *tsk
   kernel/sched/deadline.c:2549:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:1198:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:1198:39: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1198:39: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:1198:85: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct sched_dl_entity const *b @@     got struct sched_dl_entity [noderef] __rcu * @@
   kernel/sched/deadline.c:1198:85: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:1198:85: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:1296:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/deadline.c:1296:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1296:23: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:1815:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:1815:31: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1815:31: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:1815:70: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct sched_dl_entity const *b @@     got struct sched_dl_entity [noderef] __rcu * @@
   kernel/sched/deadline.c:1815:70: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:1815:70: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:1941:39: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/deadline.c:1941:39: sparse:     expected struct task_struct *donor
   kernel/sched/deadline.c:1941:39: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:2758: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/deadline.c:2758:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/deadline.c:2758:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/deadline.c:2419:14: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *curr @@     got struct task_struct [noderef] __rcu * @@
   kernel/sched/deadline.c:2419:14: sparse:     expected struct task_struct *curr
   kernel/sched/deadline.c:2419:14: sparse:     got struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:2420:15: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu * @@
   kernel/sched/deadline.c:2420:15: sparse:     expected struct task_struct *donor
   kernel/sched/deadline.c:2420:15: sparse:     got struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:2494:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/deadline.c:2494:43: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:2494:43: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:3083:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *tsk @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:3083:38: sparse:     expected struct task_struct *tsk
   kernel/sched/deadline.c:3083:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:3085:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/deadline.c:3085:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:3085:23: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:3087:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct sched_dl_entity const *b @@     got struct sched_dl_entity [noderef] __rcu * @@
   kernel/sched/deadline.c:3087:44: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:3087:44: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:3340:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/deadline.c:3340:23: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:3340:23: sparse:    struct task_struct *
   kernel/sched/deadline.c:3393:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/ext.c:1099:38: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *curr @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/ext.c:1179:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:1189:48: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/ext.c:1189:48: sparse:    struct task_struct *
   kernel/sched/ext.c:1189:48: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/ext.c:1348:66: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/ext.c:1348:66: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/ext.c:1348:66: sparse:    struct task_struct *
   kernel/sched/ext.c:1847:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/ext.c:1847:35: sparse:     expected struct task_struct *p
   kernel/sched/ext.c:1847:35: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/ext.c:1858:38: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *from @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/ext.c:1858:38: sparse:     expected struct task_struct *from
   kernel/sched/ext.c:1858:38: sparse:     got struct task_struct [noderef] __rcu *donor
>> kernel/sched/ext.c:2391:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:2391:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:2391:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:2596:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:2596:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:2596:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:2691:38: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *prev @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/ext.c:2691:38: sparse:     expected struct task_struct *prev
   kernel/sched/ext.c:2691:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/ext.c:2909:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:2909:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:2909:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3110:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3110:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3110:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3166:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3166:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3166:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3201:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3201:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3201:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3285:47: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3285:47: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3285:47: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3456:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/ext.c:3456:35: sparse:     expected struct task_struct *p
   kernel/sched/ext.c:3456:35: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/ext.c:3488:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3488:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3488:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3517:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3517:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3517:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3530:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3530:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3530:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3579:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3579:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3579:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3598:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3598:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3598:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3616:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3616:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3616:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3632:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3632:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3632:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:3649:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root @@
   kernel/sched/ext.c:3649:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:3649:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [toplevel] scx_root
   kernel/sched/ext.c:4568:50: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_kick_syncs **ksyncs @@     got struct scx_kick_syncs [noderef] __rcu ** @@
   kernel/sched/ext.c:4568:50: sparse:     expected struct scx_kick_syncs **ksyncs
   kernel/sched/ext.c:4568:50: sparse:     got struct scx_kick_syncs [noderef] __rcu **
   kernel/sched/ext.c:4571:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/ext.c:4571:27: sparse:    struct scx_kick_syncs [noderef] __rcu *
   kernel/sched/ext.c:4571:27: sparse:    struct scx_kick_syncs *
   kernel/sched/ext.c:4571:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/ext.c:4571:27: sparse:    struct scx_kick_syncs [noderef] __rcu *
   kernel/sched/ext.c:4571:27: sparse:    struct scx_kick_syncs *
   kernel/sched/ext.c:4977:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root @@
   kernel/sched/ext.c:4977:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:4977:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root
   kernel/sched/ext.c:5020:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root @@
   kernel/sched/ext.c:5020:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:5020:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root
   kernel/sched/ext.c:5131:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/ext.c:5131:52: sparse:     expected struct task_struct *p
   kernel/sched/ext.c:5131:52: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/ext.c:5210:50: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_kick_syncs **ksyncs @@     got struct scx_kick_syncs [noderef] __rcu ** @@
   kernel/sched/ext.c:5210:50: sparse:     expected struct scx_kick_syncs **ksyncs
   kernel/sched/ext.c:5210:50: sparse:     got struct scx_kick_syncs [noderef] __rcu **
   kernel/sched/ext.c:5213:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/ext.c:5213:17: sparse:    struct scx_kick_syncs [noderef] __rcu *
   kernel/sched/ext.c:5213:17: sparse:    struct scx_kick_syncs *
   kernel/sched/ext.c:5222:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/ext.c:5222:17: sparse:    struct scx_kick_syncs [noderef] __rcu *
   kernel/sched/ext.c:5222:17: sparse:    struct scx_kick_syncs *
   kernel/sched/ext.c:5693:40: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *parent @@     got struct scx_sched [noderef] __rcu *scx_sched @@
   kernel/sched/ext.c:5693:40: sparse:     expected struct scx_sched *parent
   kernel/sched/ext.c:5693:40: sparse:     got struct scx_sched [noderef] __rcu *scx_sched
   kernel/sched/ext.c:5847:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *scx_sched @@
   kernel/sched/ext.c:5847:38: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:5847:38: sparse:     got struct scx_sched [noderef] __rcu *scx_sched
   kernel/sched/ext.c:6228:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct const *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/ext.c:6228:32: sparse:     expected struct task_struct const *p
   kernel/sched/ext.c:6228:32: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/ext.c:6355:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root @@
   kernel/sched/ext.c:6355:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:6355:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root
   kernel/sched/ext.c:6685:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root @@
   kernel/sched/ext.c:6685:33: sparse:     expected struct scx_sched *sch
   kernel/sched/ext.c:6685:33: sparse:     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root
   kernel/sched/ext.c:7600:18: sparse: sparse: symbol 'scx_bpf_reenqueue_local___v2' was not declared. Should it be static?
   kernel/sched/ext.c:7774:33: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/ext.c:7774:33: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/ext.c:7774:33: sparse:    struct task_struct const *
   kernel/sched/build_policy.c: note: in included file:
>> kernel/sched/ext_idle.c:735:33: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct scx_sched *sch @@     got struct scx_sched [noderef] __rcu *[addressable] [assigned] [toplevel] scx_root @@
   kernel/sched/ext_idle.c:755:49: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct const *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/syscalls.c:1382:22: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *curr @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/sched.h:2363:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2363:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2374:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2363:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2374:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct *
   kernel/sched/sched.h:1395:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1395:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1395:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2363:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2363:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2374:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2374:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2374:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2363:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2363:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2363:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1395:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1395:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1395:25: sparse:    struct task_struct *
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/syscalls.c:1307:11: sparse: sparse: dereference of noderef expression
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/rt.c:1665:15: sparse: sparse: dereference of noderef expression

vim +2391 kernel/sched/ext.c

a8ad873113d3fe0 Emil Tsalapatis 2025-10-10  2388  
753e2836d139b43 Tejun Heo       2024-09-03  2389  static int balance_one(struct rq *rq, struct task_struct *prev)
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2390  {
cdf5a6faa8cf0ef Tejun Heo       2025-04-29 @2391  	struct scx_sched *sch = scx_root;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2392  	struct scx_dsp_ctx *dspc = this_cpu_ptr(scx_dsp_ctx);
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2393  	bool prev_on_scx = prev->sched_class == &ext_sched_class;
30dd3b13f9de612 Henry Huang     2025-01-08  2394  	bool prev_on_rq = prev->scx.flags & SCX_TASK_QUEUED;
0922f54fdd15aed Tejun Heo       2024-06-18  2395  	int nr_loops = SCX_DSP_MAX_LOOPS;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2396  
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2397  	lockdep_assert_rq_held(rq);
f47a818950dd5e5 Tejun Heo       2024-07-12  2398  	rq->scx.flags |= SCX_RQ_IN_BALANCE;
4c95380701f58b8 Peter Zijlstra  2025-10-01  2399  	rq->scx.flags &= ~SCX_RQ_BAL_KEEP;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2400  
d310fb40096896a Tejun Heo       2025-05-14  2401  	if ((sch->ops.flags & SCX_OPS_HAS_CPU_PREEMPT) &&
245254f7081dbe1 David Vernet    2024-06-18  2402  	    unlikely(rq->scx.cpu_released)) {
245254f7081dbe1 David Vernet    2024-06-18  2403  		/*
245254f7081dbe1 David Vernet    2024-06-18  2404  		 * If the previous sched_class for the current CPU was not SCX,
245254f7081dbe1 David Vernet    2024-06-18  2405  		 * notify the BPF scheduler that it again has control of the
245254f7081dbe1 David Vernet    2024-06-18  2406  		 * core. This callback complements ->cpu_release(), which is
6b8950ef993bcf1 Zhao Mengmeng   2024-11-15  2407  		 * emitted in switch_class().
245254f7081dbe1 David Vernet    2024-06-18  2408  		 */
d310fb40096896a Tejun Heo       2025-05-14  2409  		if (SCX_HAS_OP(sch, cpu_acquire))
ab3f497ac18d486 Tejun Heo       2025-05-14  2410  			SCX_CALL_OP(sch, SCX_KF_REST, cpu_acquire, rq,
ab3f497ac18d486 Tejun Heo       2025-05-14  2411  				    cpu_of(rq), NULL);
245254f7081dbe1 David Vernet    2024-06-18  2412  		rq->scx.cpu_released = false;
245254f7081dbe1 David Vernet    2024-06-18  2413  	}
245254f7081dbe1 David Vernet    2024-06-18  2414  
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2415  	if (prev_on_scx) {
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2416  		update_curr_scx(rq);
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2417  
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2418  		/*
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2419  		 * If @prev is runnable & has slice left, it has priority and
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2420  		 * fetching more just increases latency for the fetched tasks.
753e2836d139b43 Tejun Heo       2024-09-03  2421  		 * Tell pick_task_scx() to keep running @prev. If the BPF
7c65ae81ea86a6e Tejun Heo       2024-09-03  2422  		 * scheduler wants to handle this explicitly, it should
7c65ae81ea86a6e Tejun Heo       2024-09-03  2423  		 * implement ->cpu_release().
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2424  		 *
1a2469403eb26c1 Tejun Heo       2025-04-04  2425  		 * See scx_disable_workfn() for the explanation on the bypassing
1a2469403eb26c1 Tejun Heo       2025-04-04  2426  		 * test.
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2427  		 */
30dd3b13f9de612 Henry Huang     2025-01-08  2428  		if (prev_on_rq && prev->scx.slice && !scx_rq_bypassing(rq)) {
8b1451f2f723f84 Tejun Heo       2024-09-03  2429  			rq->scx.flags |= SCX_RQ_BAL_KEEP;
81aae789181b585 Tejun Heo       2024-06-18  2430  			goto has_tasks;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2431  		}
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2432  	}
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2433  
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2434  	/* if there already are tasks to run, nothing to do */
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2435  	if (rq->scx.local_dsq.nr)
81aae789181b585 Tejun Heo       2024-06-18  2436  		goto has_tasks;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2437  
8409b800a0b1f14 Tejun Heo       2025-04-29  2438  	if (consume_global_dsq(sch, rq))
81aae789181b585 Tejun Heo       2024-06-18  2439  		goto has_tasks;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2440  
61debc251c1c915 Tejun Heo       2025-11-11  2441  	if (scx_rq_bypassing(rq)) {
61debc251c1c915 Tejun Heo       2025-11-11  2442  		if (consume_dispatch_q(sch, rq, &rq->scx.bypass_dsq))
61debc251c1c915 Tejun Heo       2025-11-11  2443  			goto has_tasks;
61debc251c1c915 Tejun Heo       2025-11-11  2444  		else
61debc251c1c915 Tejun Heo       2025-11-11  2445  			goto no_tasks;
61debc251c1c915 Tejun Heo       2025-11-11  2446  	}
61debc251c1c915 Tejun Heo       2025-11-11  2447  
61debc251c1c915 Tejun Heo       2025-11-11  2448  	if (unlikely(!SCX_HAS_OP(sch, dispatch)) || !scx_rq_online(rq))
7c65ae81ea86a6e Tejun Heo       2024-09-03  2449  		goto no_tasks;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2450  
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2451  	dspc->rq = rq;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2452  
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2453  	/*
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2454  	 * The dispatch loop. Because flush_dispatch_buf() may drop the rq lock,
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2455  	 * the local DSQ might still end up empty after a successful
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2456  	 * ops.dispatch(). If the local DSQ is empty even after ops.dispatch()
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2457  	 * produced some tasks, retry. The BPF scheduler may depend on this
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2458  	 * looping behavior to simplify its implementation.
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2459  	 */
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2460  	do {
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2461  		dspc->nr_tasks = 0;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2462  
ab3f497ac18d486 Tejun Heo       2025-05-14  2463  		SCX_CALL_OP(sch, SCX_KF_DISPATCH, dispatch, rq,
ab3f497ac18d486 Tejun Heo       2025-05-14  2464  			    cpu_of(rq), prev_on_scx ? prev : NULL);
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2465  
cdf5a6faa8cf0ef Tejun Heo       2025-04-29  2466  		flush_dispatch_buf(sch, rq);
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2467  
30dd3b13f9de612 Henry Huang     2025-01-08  2468  		if (prev_on_rq && prev->scx.slice) {
30dd3b13f9de612 Henry Huang     2025-01-08  2469  			rq->scx.flags |= SCX_RQ_BAL_KEEP;
30dd3b13f9de612 Henry Huang     2025-01-08  2470  			goto has_tasks;
30dd3b13f9de612 Henry Huang     2025-01-08  2471  		}
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2472  		if (rq->scx.local_dsq.nr)
81aae789181b585 Tejun Heo       2024-06-18  2473  			goto has_tasks;
8409b800a0b1f14 Tejun Heo       2025-04-29  2474  		if (consume_global_dsq(sch, rq))
81aae789181b585 Tejun Heo       2024-06-18  2475  			goto has_tasks;
0922f54fdd15aed Tejun Heo       2024-06-18  2476  
0922f54fdd15aed Tejun Heo       2024-06-18  2477  		/*
0922f54fdd15aed Tejun Heo       2024-06-18  2478  		 * ops.dispatch() can trap us in this loop by repeatedly
0922f54fdd15aed Tejun Heo       2024-06-18  2479  		 * dispatching ineligible tasks. Break out once in a while to
0922f54fdd15aed Tejun Heo       2024-06-18  2480  		 * allow the watchdog to run. As IRQ can't be enabled in
0922f54fdd15aed Tejun Heo       2024-06-18  2481  		 * balance(), we want to complete this scheduling cycle and then
0922f54fdd15aed Tejun Heo       2024-06-18  2482  		 * start a new one. IOW, we want to call resched_curr() on the
0922f54fdd15aed Tejun Heo       2024-06-18  2483  		 * next, most likely idle, task, not the current one. Use
9fc687edf205dbc Tejun Heo       2025-09-23  2484  		 * scx_kick_cpu() for deferred kicking.
0922f54fdd15aed Tejun Heo       2024-06-18  2485  		 */
0922f54fdd15aed Tejun Heo       2024-06-18  2486  		if (unlikely(!--nr_loops)) {
9fc687edf205dbc Tejun Heo       2025-09-23  2487  			scx_kick_cpu(sch, cpu_of(rq), 0);
0922f54fdd15aed Tejun Heo       2024-06-18  2488  			break;
0922f54fdd15aed Tejun Heo       2024-06-18  2489  		}
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2490  	} while (dspc->nr_tasks);
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2491  
7c65ae81ea86a6e Tejun Heo       2024-09-03  2492  no_tasks:
7c65ae81ea86a6e Tejun Heo       2024-09-03  2493  	/*
7c65ae81ea86a6e Tejun Heo       2024-09-03  2494  	 * Didn't find another task to run. Keep running @prev unless
7c65ae81ea86a6e Tejun Heo       2024-09-03  2495  	 * %SCX_OPS_ENQ_LAST is in effect.
7c65ae81ea86a6e Tejun Heo       2024-09-03  2496  	 */
cc39454c341e02b Tejun Heo       2025-04-09  2497  	if (prev_on_rq &&
d310fb40096896a Tejun Heo       2025-05-14  2498  	    (!(sch->ops.flags & SCX_OPS_ENQ_LAST) || scx_rq_bypassing(rq))) {
8b1451f2f723f84 Tejun Heo       2024-09-03  2499  		rq->scx.flags |= SCX_RQ_BAL_KEEP;
c201ea1578d3b9e Tejun Heo       2025-04-29  2500  		__scx_add_event(sch, SCX_EV_DISPATCH_KEEP_LAST, 1);
7c65ae81ea86a6e Tejun Heo       2024-09-03  2501  		goto has_tasks;
7c65ae81ea86a6e Tejun Heo       2024-09-03  2502  	}
7c65ae81ea86a6e Tejun Heo       2024-09-03  2503  	rq->scx.flags &= ~SCX_RQ_IN_BALANCE;
7c65ae81ea86a6e Tejun Heo       2024-09-03  2504  	return false;
81aae789181b585 Tejun Heo       2024-06-18  2505  
81aae789181b585 Tejun Heo       2024-06-18  2506  has_tasks:
f47a818950dd5e5 Tejun Heo       2024-07-12  2507  	rq->scx.flags &= ~SCX_RQ_IN_BALANCE;
7c65ae81ea86a6e Tejun Heo       2024-09-03  2508  	return true;
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2509  }
f0e1a0643a59bf1 Tejun Heo       2024-06-18  2510  

:::::: The code at line 2391 was first introduced by commit
:::::: cdf5a6faa8cf0ef62ec238a18b898ca9827bc472 sched_ext: Move dsq_hash into scx_sched

:::::: TO: Tejun Heo <tj@kernel.org>
:::::: CC: Tejun Heo <tj@kernel.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-05-04  4:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-04  4:28 kernel/sched/ext.c:2391:33: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot

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