From: kernel test robot <lkp@intel.com>
To: Tejun Heo <tj@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
Andrea Righi <arighi@nvidia.com>
Subject: kernel/sched/ext_idle.c:736:33: sparse: sparse: incorrect type in initializer (different address spaces)
Date: Tue, 03 Mar 2026 06:56:12 +0800 [thread overview]
Message-ID: <202603030625.EdEmNcXG-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: af4e9ef3d78420feb8fe58cd9a1ab80c501b3c08
commit: d310fb40096896abe1928b88224129bf7122532f sched_ext: Clean up scx_root usages
date: 10 months ago
config: sparc-randconfig-r122-20260302 (https://download.01.org/0day-ci/archive/20260303/202603030625.EdEmNcXG-lkp@intel.com/config)
compiler: sparc64-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/20260303/202603030625.EdEmNcXG-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/202603030625.EdEmNcXG-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/ext.c:3394:49: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3394:49: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3394:49: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3430:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3430:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3430:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3451:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3451:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3451:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3510:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3510:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3510:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3529:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3529:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3529:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3641:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3641:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3641:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3720:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3720:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3720:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3772:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3772:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3772:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3799:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3799:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3799:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3812:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3812:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3812:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3941:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3941:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3941:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:3956:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root @@
kernel/sched/ext.c:3956:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:3956:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [toplevel] scx_root
kernel/sched/ext.c:5057:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root @@
kernel/sched/ext.c:5057:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:5057:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root
kernel/sched/ext.c:5099:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root @@
kernel/sched/ext.c:5099:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:5099:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root
kernel/sched/ext.c:5209: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:5209:52: sparse: expected struct task_struct *p
kernel/sched/ext.c:5209:52: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/ext.c:5971: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:5971:32: sparse: expected struct task_struct const *p
kernel/sched/ext.c:5971:32: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/ext.c:6080:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root @@
kernel/sched/ext.c:6080:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:6080:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root
kernel/sched/ext.c:6352:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root @@
kernel/sched/ext.c:6352:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:6352:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root
kernel/sched/ext.c:6485:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root @@
kernel/sched/ext.c:6485:33: sparse: expected struct scx_sched *sch
kernel/sched/ext.c:6485:33: sparse: got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root
kernel/sched/ext.c:7332:33: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/ext.c:7332:33: sparse: struct task_struct [noderef] __rcu *
kernel/sched/ext.c:7332:33: sparse: struct task_struct const *
kernel/sched/build_policy.c: note: in included file:
kernel/sched/ext_idle.c:245:24: sparse: sparse: Using plain integer as NULL pointer
>> kernel/sched/ext_idle.c:736:33: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct scx_sched *sch @@ got struct scx_sched [noderef] __rcu *static [addressable] [assigned] [toplevel] scx_root @@
kernel/sched/ext_idle.c:766: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:206:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/syscalls.c:206:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/syscalls.c:206:22: sparse: struct task_struct *
kernel/sched/syscalls.c:253:48: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/syscalls.c:253:48: sparse: struct task_struct [noderef] __rcu *
kernel/sched/syscalls.c:253:48: sparse: struct task_struct *
kernel/sched/build_policy.c: note: in included file:
kernel/sched/sched.h:2241:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2241:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2241:25: sparse: struct task_struct *
kernel/sched/sched.h:2241:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2241:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2241:25: sparse: struct task_struct *
kernel/sched/sched.h:2252:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2252:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2252:26: sparse: struct task_struct *
kernel/sched/sched.h:2241:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2241:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2241:25: sparse: struct task_struct *
kernel/sched/sched.h:2252:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2252:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2252:26: sparse: struct task_struct *
kernel/sched/sched.h:2241:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2241:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2241:25: sparse: struct task_struct *
kernel/sched/sched.h:2241:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2241:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2241:25: sparse: struct task_struct *
kernel/sched/sched.h:2252:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2252:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2252:26: sparse: struct task_struct *
kernel/sched/sched.h:2241:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2241:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2241:25: sparse: struct task_struct *
kernel/sched/sched.h:2241:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2241:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2241:25: sparse: struct task_struct *
kernel/sched/sched.h:2252:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2252:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2252:26: sparse: struct task_struct *
kernel/sched/sched.h:2441:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2441:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2441:9: sparse: struct task_struct *
kernel/sched/sched.h:2252:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2252:26: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2252:26: sparse: struct task_struct *
kernel/sched/sched.h:2441:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2441:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2441:9: sparse: struct task_struct *
kernel/sched/build_policy.c: note: in included file:
kernel/sched/syscalls.c:1295:6: sparse: sparse: context imbalance in 'sched_getaffinity' - wrong count at exit
kernel/sched/build_policy.c: note: in included file:
kernel/sched/rt.c:1697:15: sparse: sparse: dereference of noderef expression
vim +736 kernel/sched/ext_idle.c
717
718 /*
719 * Update the idle state of a CPU to @idle.
720 *
721 * If @do_notify is true, ops.update_idle() is invoked to notify the scx
722 * scheduler of an actual idle state transition (idle to busy or vice
723 * versa). If @do_notify is false, only the idle state in the idle masks is
724 * refreshed without invoking ops.update_idle().
725 *
726 * This distinction is necessary, because an idle CPU can be "reserved" and
727 * awakened via scx_bpf_pick_idle_cpu() + scx_bpf_kick_cpu(), marking it as
728 * busy even if no tasks are dispatched. In this case, the CPU may return
729 * to idle without a true state transition. Refreshing the idle masks
730 * without invoking ops.update_idle() ensures accurate idle state tracking
731 * while avoiding unnecessary updates and maintaining balanced state
732 * transitions.
733 */
734 void __scx_update_idle(struct rq *rq, bool idle, bool do_notify)
735 {
> 736 struct scx_sched *sch = scx_root;
737 int cpu = cpu_of(rq);
738
739 lockdep_assert_rq_held(rq);
740
741 /*
742 * Trigger ops.update_idle() only when transitioning from a task to
743 * the idle thread and vice versa.
744 *
745 * Idle transitions are indicated by do_notify being set to true,
746 * managed by put_prev_task_idle()/set_next_task_idle().
747 */
748 if (SCX_HAS_OP(sch, update_idle) && do_notify && !scx_rq_bypassing(rq))
749 SCX_CALL_OP(SCX_KF_REST, update_idle, rq, cpu_of(rq), idle);
750
751 /*
752 * Update the idle masks:
753 * - for real idle transitions (do_notify == true)
754 * - for idle-to-idle transitions (indicated by the previous task
755 * being the idle thread, managed by pick_task_idle())
756 *
757 * Skip updating idle masks if the previous task is not the idle
758 * thread, since set_next_task_idle() has already handled it when
759 * transitioning from a task to the idle thread (calling this
760 * function with do_notify == true).
761 *
762 * In this way we can avoid updating the idle masks twice,
763 * unnecessarily.
764 */
765 if (static_branch_likely(&scx_builtin_idle_enabled))
766 if (do_notify || is_idle_task(rq->curr))
767 update_builtin_idle(cpu, idle);
768 }
769
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-03-02 22:56 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-02 22:56 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-06-27 14:38 kernel/sched/ext_idle.c:736:33: sparse: sparse: incorrect type in initializer (different address spaces) kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202603030625.EdEmNcXG-lkp@intel.com \
--to=lkp@intel.com \
--cc=arighi@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.