All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [android-common:android17-6.18-kminext 1/1] kernel/sched/rt.c:1655:45: sparse: sparse: incorrect type in argument 2 (different address spaces)
Date: Fri, 03 Jul 2026 11:20:34 +0800	[thread overview]
Message-ID: <202607031125.epO7Q8C9-lkp@intel.com> (raw)

Hi Tiffany,

First bad commit (maybe != root cause):

tree:   https://android.googlesource.com/kernel/common android17-6.18-kminext
head:   005764abb0daff6b6c529f8e94989d90d8106a08
commit: a18faab7e7d04a637603ae34a4cc2376cd10b8eb [1/1] ANDROID: sched: remove SMP-related ifdefs around proxy_exec fns
config: i386-randconfig-r112-20260702 (https://download.01.org/0day-ci/archive/20260703/202607031125.epO7Q8C9-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260703/202607031125.epO7Q8C9-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/202607031125.epO7Q8C9-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/rt.c:2488:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/rt.c:2488:25: sparse:    struct task_struct *
   kernel/sched/rt.c:2488:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:985: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:985:39: sparse:     expected struct task_struct *donor
   kernel/sched/rt.c:985:39: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:1525:31: 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:1525:31: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:1525:31: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:1917: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/rt.c:1917:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/rt.c:1917:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/rt.c:1575:14: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *curr @@     got struct task_struct [noderef] __rcu * @@
   kernel/sched/rt.c:1575:14: sparse:     expected struct task_struct *curr
   kernel/sched/rt.c:1575:14: sparse:     got struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:1576:15: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu * @@
   kernel/sched/rt.c:1576:15: sparse:     expected struct task_struct *donor
   kernel/sched/rt.c:1576:15: sparse:     got struct task_struct [noderef] __rcu *
>> kernel/sched/rt.c:1655:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct task_struct *sched_ctx @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/rt.c:1655:45: sparse:     expected struct task_struct *sched_ctx
   kernel/sched/rt.c:1655:45: sparse:     got struct task_struct [noderef] __rcu *donor
>> kernel/sched/rt.c:1655:56: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected struct task_struct *exec_ctx @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:1655:56: sparse:     expected struct task_struct *exec_ctx
   kernel/sched/rt.c:1655:56: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/rt.c:1686:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/rt.c:1686:35: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:1686:35: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:1712: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:1712:39: sparse:     expected struct task_struct *donor
   kernel/sched/rt.c:1712:39: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:1731: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:1731:64: sparse:     expected struct task_struct *tsk
   kernel/sched/rt.c:1731:64: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/rt.c:2167:40: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *sched_ctx @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/rt.c:2167:40: sparse:     expected struct task_struct *sched_ctx
   kernel/sched/rt.c:2167:40: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:2167:51: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct task_struct *exec_ctx @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/rt.c:2167:51: sparse:     expected struct task_struct *exec_ctx
   kernel/sched/rt.c:2167:51: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/rt.c:2190:13: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/rt.c:2190:13: sparse:    struct task_struct *
   kernel/sched/rt.c:2190:13: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/rt.c:2539: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:2539:54: sparse:     expected struct task_struct *tsk
   kernel/sched/rt.c:2539:54: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/rt.c:2541: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:2541:40: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:2541:40: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/rt.c:2541: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:2541:62: sparse:     expected struct task_struct *p
   kernel/sched/rt.c:2541:62: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/deadline.c:2751: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:2751:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:2751:23: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:2761:13: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/deadline.c:2761:13: sparse:    struct task_struct *
   kernel/sched/deadline.c:2761:13: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:2867:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/deadline.c:2867:25: sparse:    struct task_struct *
   kernel/sched/deadline.c:2867:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:2307: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:2307:42: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:2307:42: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:2317: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:2317:38: sparse:     expected struct task_struct *tsk
   kernel/sched/deadline.c:2317:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:1194: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:1194:39: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1194:39: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:1194: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:1194:85: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:1194:85: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:1292: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:1292:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1292:23: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:1590: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:1590:31: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:1590:31: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:1590: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:1590:70: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:1590:70: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:1703: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:1703:39: sparse:     expected struct task_struct *donor
   kernel/sched/deadline.c:1703:39: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:2526: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:2526:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/deadline.c:2526:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/deadline.c:2181: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:2181:14: sparse:     expected struct task_struct *curr
   kernel/sched/deadline.c:2181:14: sparse:     got struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:2182: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:2182:15: sparse:     expected struct task_struct *donor
   kernel/sched/deadline.c:2182:15: sparse:     got struct task_struct [noderef] __rcu *
>> kernel/sched/deadline.c:2259:43: sparse: sparse: incorrect type in argument 2 (different address spaces) @@     expected struct task_struct *sched_ctx @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/deadline.c:2259:43: sparse:     expected struct task_struct *sched_ctx
   kernel/sched/deadline.c:2259:43: sparse:     got struct task_struct [noderef] __rcu *donor
>> kernel/sched/deadline.c:2259:54: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected struct task_struct *exec_ctx @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/deadline.c:2259:54: sparse:     expected struct task_struct *exec_ctx
   kernel/sched/deadline.c:2259:54: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:2283:35: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/deadline.c:2283:35: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:2283:35: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:2912: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:2912:38: sparse:     expected struct task_struct *tsk
   kernel/sched/deadline.c:2912:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/deadline.c:2914: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:2914:23: sparse:     expected struct task_struct *p
   kernel/sched/deadline.c:2914:23: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/deadline.c:2916: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:2916:44: sparse:     expected struct sched_dl_entity const *b
   kernel/sched/deadline.c:2916:44: sparse:     got struct sched_dl_entity [noderef] __rcu *
   kernel/sched/deadline.c:3110:23: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/deadline.c:3110:23: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/deadline.c:3110:23: sparse:    struct task_struct *
   kernel/sched/deadline.c:3156: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/syscalls.c:210:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/syscalls.c:210:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/syscalls.c:210:22: sparse:    struct task_struct *
   kernel/sched/syscalls.c:1464:22: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *curr @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/syscalls.c:1464:22: sparse:     expected struct task_struct *curr
   kernel/sched/syscalls.c:1464:22: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2509:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2509:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct *
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/syscalls.c:1316:6: sparse: sparse: context imbalance in 'sched_getaffinity' - different lock contexts for basic block
   kernel/sched/syscalls.c:1386:15: sparse: sparse: dereference of noderef expression
   kernel/sched/syscalls.c:1387:19: sparse: sparse: dereference of noderef expression
   kernel/sched/build_policy.c: note: in included file:
   kernel/sched/rt.c:1755:15: sparse: sparse: dereference of noderef expression
--
   kernel/sched/core.c:4243:29: sparse:     got struct rq *
   kernel/sched/core.c:4335:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4335:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4335:25: sparse:     got struct rq *
   kernel/sched/core.c:4383:31: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4383:31: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4383:31: sparse:     got struct rq *
   kernel/sched/core.c:4399:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4399:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4399:25: sparse:     got struct rq *
   kernel/sched/core.c:4411:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4411:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4411:25: sparse:     got struct rq *
   kernel/sched/core.c:4416:36: 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/core.c:4416:36: sparse:     expected struct task_struct const *p
   kernel/sched/core.c:4416:36: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:4520:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4520:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4520:25: sparse:     got struct rq *
   kernel/sched/core.c:4858:45: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4858:45: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4858:45: sparse:     got struct rq *
   kernel/sched/core.c:4879:34: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4879:34: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4879:34: sparse:     got struct rq *
   kernel/sched/core.c:4983:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4983:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4983:25: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:4989:13: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:4989:13: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:4989:13: sparse:     got struct rq *
   kernel/sched/core.c:5781:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:5781:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:5781:25: sparse:     got struct rq *
   kernel/sched/core.c:5972:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:5972:24: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:5972:24: sparse:     got struct rq *
   kernel/sched/core.c:5993:16: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:5993:16: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:5993:16: sparse:     got struct rq *
   kernel/sched/core.c:5999:16: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:5999:16: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:5999:16: sparse:     got struct rq *
   kernel/sched/core.c:6008:24: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:6008:24: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:6008:24: sparse:     got struct rq *
   kernel/sched/core.c:6022:29: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:6022:29: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:6022:29: sparse:     got struct rq *
   kernel/sched/core.c:6212:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:6212:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:6212:25: sparse:     got struct rq *
   kernel/sched/core.c:6225:15: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/core.c:6225:15: sparse:     expected struct task_struct *donor
   kernel/sched/core.c:6225:15: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/core.c:7702:14: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:7702:14: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:7702:14: sparse:     got struct rq *
   kernel/sched/core.c:7703:14: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct task_struct *prev @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:7703:14: sparse:     expected struct task_struct *prev
   kernel/sched/core.c:7703:14: sparse:     got struct task_struct [noderef] __rcu *curr
>> kernel/sched/core.c:7780:53: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/core.c:7780:53: sparse:     expected struct task_struct *donor
   kernel/sched/core.c:7780:53: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/core.c:7780:85: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/core.c:7780:85: sparse:     expected struct task_struct *p
   kernel/sched/core.c:7780:85: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/core.c:7785:58: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/core.c:7785:58: sparse:     expected struct task_struct *donor
   kernel/sched/core.c:7785:58: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/core.c:7785:90: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/core.c:7785:90: sparse:     expected struct task_struct *p
   kernel/sched/core.c:7785:90: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/core.c:7789:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/core.c:7789:48: sparse:     expected struct task_struct *donor
   kernel/sched/core.c:7789:48: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/core.c:7791:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *donor @@     got struct task_struct [noderef] __rcu *donor @@
   kernel/sched/core.c:7791:45: sparse:     expected struct task_struct *donor
   kernel/sched/core.c:7791:45: sparse:     got struct task_struct [noderef] __rcu *donor
   kernel/sched/core.c:8302:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/core.c:8302:17: sparse:    struct task_struct *
   kernel/sched/core.c:8302:17: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:8901:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:8901:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:8901:25: sparse:     got struct rq *
   kernel/sched/core.c:9324:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:9324:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:9324:25: sparse:     got struct rq *
   kernel/sched/core.c:9362:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:9362:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:9362:25: sparse:     got struct rq *
   kernel/sched/core.c:9422:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:9422:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:9422:25: sparse:     got struct rq *
   kernel/sched/core.c:9643:22: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:9643:22: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:9643:22: sparse:     got struct rq *
   kernel/sched/core.c:11303:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct rq * @@
   kernel/sched/core.c:11303:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   kernel/sched/core.c:11303:25: sparse:     got struct rq *
   kernel/sched/core.c:11303:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct task_struct *p @@     got struct task_struct [noderef] __rcu *curr @@
   kernel/sched/core.c:11303:25: sparse:     expected struct task_struct *p
   kernel/sched/core.c:11303:25: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:715:6: sparse: sparse: context imbalance in 'raw_spin_rq_lock_nested' - wrong count at exit
   kernel/sched/core.c:741:6: sparse: sparse: context imbalance in 'raw_spin_rq_trylock' - wrong count at exit
   kernel/sched/core.c:765:6: sparse: sparse: context imbalance in 'raw_spin_rq_unlock' - unexpected unlock
   kernel/sched/core.c: note: in included file:
   kernel/sched/sched.h:1804:9: sparse: sparse: context imbalance in '__task_rq_lock' - wrong count at exit
   kernel/sched/sched.h:1804:9: sparse: sparse: context imbalance in 'task_rq_lock' - wrong count at exit
   kernel/sched/core.c: note: in included file:
   kernel/sched/pelt.h:117:13: 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/pelt.h:117:13: sparse:     expected struct task_struct const *p
   kernel/sched/pelt.h:117:13: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/core.c:970:11: sparse: sparse: dereference of noderef expression
   kernel/sched/core.c:2462:35: sparse: sparse: context imbalance in 'wait_task_inactive' - different lock contexts for basic block
   kernel/sched/core.c: note: in included file:
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2509:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2310:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2310:25: sparse:    struct task_struct *
   kernel/sched/core.c:2344:38: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/core.c:2344:38: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/core.c:2344:38: sparse:    struct task_struct const *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2532:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2532:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2532:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2532:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2532:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2532:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2509:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct *
   kernel/sched/sched.h:2321:26: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2321:26: sparse:    struct task_struct *
   kernel/sched/sched.h:2509:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:2509:9: sparse:    struct task_struct *

vim +1655 kernel/sched/rt.c

01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1551  
0017d7350928441 kernel/sched_rt.c Peter Zijlstra     2010-03-24  1552  static int
3aef1551e942860 kernel/sched/rt.c Valentin Schneider 2020-11-02  1553  select_task_rq_rt(struct task_struct *p, int cpu, int flags)
e7693a362ec84bb kernel/sched_rt.c Gregory Haskins    2008-01-25  1554  {
af0c8b2bf67b257 kernel/sched/rt.c Peter Zijlstra     2024-10-09  1555  	struct task_struct *curr, *donor;
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1556  	struct rq *rq;
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1557  	struct rq *this_cpu_rq;
804d402fb6f6487 kernel/sched/rt.c Qais Yousef        2019-10-09  1558  	bool test;
16330b35600f00c kernel/sched/rt.c Park Bumgyu        2020-06-22  1559  	int target_cpu = -1;
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1560  	bool sync = !!(flags & WF_SYNC);
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1561  	int this_cpu;
16330b35600f00c kernel/sched/rt.c Park Bumgyu        2020-06-22  1562  
0dd08d580104ee2 kernel/sched/rt.c Quentin Perret     2020-12-16  1563  	trace_android_rvh_select_task_rq_rt(p, cpu, flags & 0xF,
16330b35600f00c kernel/sched/rt.c Park Bumgyu        2020-06-22  1564  					flags, &target_cpu);
16330b35600f00c kernel/sched/rt.c Park Bumgyu        2020-06-22  1565  	if (target_cpu >= 0)
16330b35600f00c kernel/sched/rt.c Park Bumgyu        2020-06-22  1566  		return target_cpu;
c37495fd0f64fc1 kernel/sched_rt.c Steven Rostedt     2011-06-16  1567  
c37495fd0f64fc1 kernel/sched_rt.c Steven Rostedt     2011-06-16  1568  	/* For anything but wake ups, just return the task_cpu */
3aef1551e942860 kernel/sched/rt.c Valentin Schneider 2020-11-02  1569  	if (!(flags & (WF_TTWU | WF_FORK)))
c37495fd0f64fc1 kernel/sched_rt.c Steven Rostedt     2011-06-16  1570  		goto out;
c37495fd0f64fc1 kernel/sched_rt.c Steven Rostedt     2011-06-16  1571  
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1572  	rq = cpu_rq(cpu);
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1573  
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1574  	rcu_read_lock();
316c1608d15c736 kernel/sched/rt.c Jason Low          2015-04-28 @1575  	curr = READ_ONCE(rq->curr); /* unlocked access */
af0c8b2bf67b257 kernel/sched/rt.c Peter Zijlstra     2024-10-09  1576  	donor = READ_ONCE(rq->donor);
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1577  	this_cpu = smp_processor_id();
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1578  	this_cpu_rq = cpu_rq(this_cpu);
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1579  
318e0893ce3f524 kernel/sched_rt.c Gregory Haskins    2008-01-25  1580  	/*
65c99af98ba6f6b kernel/sched/rt.c Greg Kroah-Hartman 2022-03-31  1581  	 * If the current task on @p's runqueue is an RT task, then
e1f47d891c0f007 kernel/sched_rt.c Steven Rostedt     2008-01-25  1582  	 * try to see if we can wake this RT task up on another
e1f47d891c0f007 kernel/sched_rt.c Steven Rostedt     2008-01-25  1583  	 * runqueue. Otherwise simply start this RT task
e1f47d891c0f007 kernel/sched_rt.c Steven Rostedt     2008-01-25  1584  	 * on its current runqueue.
e1f47d891c0f007 kernel/sched_rt.c Steven Rostedt     2008-01-25  1585  	 *
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1586  	 * We want to avoid overloading runqueues. If the woken
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1587  	 * task is a higher priority, then it will stay on this CPU
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1588  	 * and the lower prio task should be moved to another CPU.
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1589  	 * Even though this will probably make the lower prio task
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1590  	 * lose its cache, we do not want to bounce a higher task
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1591  	 * around just because it gave up its CPU, perhaps for a
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1592  	 * lock?
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1593  	 *
43fa5460fe60dea kernel/sched_rt.c Steven Rostedt     2010-09-20  1594  	 * For equal prio tasks, we just let the scheduler sort it out.
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1595  	 *
402de7fc880fef0 kernel/sched/rt.c Ingo Molnar        2024-05-27  1596  	 * Otherwise, just let it ride on the affine RQ and the
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1597  	 * post-schedule router will push the preempted task away
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1598  	 *
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1599  	 * This test is optimistic, if we get it wrong the load-balancer
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1600  	 * will have to sort it out.
804d402fb6f6487 kernel/sched/rt.c Qais Yousef        2019-10-09  1601  	 *
01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1602  	 * We use rt_task_fits_cpu() to evaluate if the CPU is busy with
01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1603  	 * potentially long-running softirq work, as well as take into
01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1604  	 * account the capacity of the CPU to ensure it fits the
01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1605  	 * requirement of the task - which is only important on
01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1606  	 * heterogeneous systems like big.LITTLE.
318e0893ce3f524 kernel/sched_rt.c Gregory Haskins    2008-01-25  1607  	 */
65c99af98ba6f6b kernel/sched/rt.c Greg Kroah-Hartman 2022-03-31  1608  	test = curr &&
af0c8b2bf67b257 kernel/sched/rt.c Peter Zijlstra     2024-10-09  1609  	       unlikely(rt_task(donor)) &&
af0c8b2bf67b257 kernel/sched/rt.c Peter Zijlstra     2024-10-09  1610  	       (curr->nr_cpus_allowed < 2 || donor->prio <= p->prio);
804d402fb6f6487 kernel/sched/rt.c Qais Yousef        2019-10-09  1611  
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1612  	/*
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1613  	 * Respect the sync flag as long as the task can run on this CPU.
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1614  	 */
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1615  	if (should_honor_rt_sync(this_cpu_rq, p, sync) &&
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1616  	    cpumask_test_cpu(this_cpu, p->cpus_ptr)) {
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1617  		cpu = this_cpu;
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1618  		goto out_unlock;
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1619  	}
0a7537e20fc27eb kernel/sched/rt.c J. Avila           2024-02-02  1620  
01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1621  	if (test || !rt_task_fits_cpu(p, cpu)) {
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08  1622  		int target = find_lowest_rq(p, p);
318e0893ce3f524 kernel/sched_rt.c Gregory Haskins    2008-01-25  1623  
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1624  		/*
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1625  		 * Bail out if we were forcing a migration to find a better
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1626  		 * fitting CPU but our search failed.
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1627  		 */
01603b5411396eb kernel/sched/rt.c Connor O'Brien     2022-05-10  1628  		if (!test && target != -1 && !rt_task_fits_cpu(p, target))
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1629  			goto out_unlock;
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1630  
80e3d87b2c5582d kernel/sched/rt.c Tim Chen           2014-12-12  1631  		/*
65c99af98ba6f6b kernel/sched/rt.c Greg Kroah-Hartman 2022-03-31  1632  		 * Don't bother moving it if the destination CPU is
80e3d87b2c5582d kernel/sched/rt.c Tim Chen           2014-12-12  1633  		 * not running a lower priority task.
80e3d87b2c5582d kernel/sched/rt.c Tim Chen           2014-12-12  1634  		 */
80e3d87b2c5582d kernel/sched/rt.c Tim Chen           2014-12-12  1635  		if (target != -1 &&
65c99af98ba6f6b kernel/sched/rt.c Greg Kroah-Hartman 2022-03-31  1636  		    p->prio < cpu_rq(target)->rt.highest_prio.curr)
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1637  			cpu = target;
318e0893ce3f524 kernel/sched_rt.c Gregory Haskins    2008-01-25  1638  	}
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1639  
b28bc1e002c23ff kernel/sched/rt.c Qais Yousef        2020-03-02  1640  out_unlock:
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1641  	rcu_read_unlock();
318e0893ce3f524 kernel/sched_rt.c Gregory Haskins    2008-01-25  1642  
c37495fd0f64fc1 kernel/sched_rt.c Steven Rostedt     2011-06-16  1643  out:
7608dec2ce2004c kernel/sched_rt.c Peter Zijlstra     2011-04-05  1644  	return cpu;
e7693a362ec84bb kernel/sched_rt.c Gregory Haskins    2008-01-25  1645  }
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1646  
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1647  static void check_preempt_equal_prio(struct rq *rq, struct task_struct *p)
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1648  {
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08  1649  	struct task_struct *exec_ctx = p;
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08  1650  	/*
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08  1651  	 * Current can't be migrated, useless to reschedule,
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08  1652  	 * let's hope p can move out.
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08  1653  	 */
4b53a3412d66632 kernel/sched/rt.c Ingo Molnar        2017-02-05  1654  	if (rq->curr->nr_cpus_allowed == 1 ||
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08 @1655  	    !cpupri_find(&rq->rd->cpupri, rq->donor, rq->curr, NULL))
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1656  		return;
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1657  
57d50e9d7fc2f22 kernel/sched/rt.c Connor O'Brien     2023-11-08  1658  	/* No reason to preempt since rq->curr wouldn't change anyway */
57d50e9d7fc2f22 kernel/sched/rt.c Connor O'Brien     2023-11-08  1659  	exec_ctx = find_exec_ctx(rq, p);
57d50e9d7fc2f22 kernel/sched/rt.c Connor O'Brien     2023-11-08  1660  	if (task_current(rq, exec_ctx))
57d50e9d7fc2f22 kernel/sched/rt.c Connor O'Brien     2023-11-08  1661  		return;
57d50e9d7fc2f22 kernel/sched/rt.c Connor O'Brien     2023-11-08  1662  
308a623a40ce168 kernel/sched/rt.c Wanpeng Li         2014-10-31  1663  	/*
308a623a40ce168 kernel/sched/rt.c Wanpeng Li         2014-10-31  1664  	 * p is migratable, so let's not schedule it and
308a623a40ce168 kernel/sched/rt.c Wanpeng Li         2014-10-31  1665  	 * see if it is pushed or pulled somewhere else.
308a623a40ce168 kernel/sched/rt.c Wanpeng Li         2014-10-31  1666  	 */
804d402fb6f6487 kernel/sched/rt.c Qais Yousef        2019-10-09  1667  	if (p->nr_cpus_allowed != 1 &&
c621dead3a640a6 kernel/sched/rt.c Connor O'Brien     2023-11-08  1668  	    cpupri_find(&rq->rd->cpupri, p, exec_ctx, NULL))
13b8bd0a5713bdf kernel/sched_rt.c Rusty Russell      2009-03-25  1669  		return;
24600ce89a819a8 kernel/sched_rt.c Rusty Russell      2008-11-25  1670  
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1671  	/*
97fb7a0a8944bd6 kernel/sched/rt.c Ingo Molnar        2018-03-03  1672  	 * There appear to be other CPUs that can accept
97fb7a0a8944bd6 kernel/sched/rt.c Ingo Molnar        2018-03-03  1673  	 * the current task but none can run 'p', so lets reschedule
97fb7a0a8944bd6 kernel/sched/rt.c Ingo Molnar        2018-03-03  1674  	 * to try and push the current task away:
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1675  	 */
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1676  	requeue_task_rt(rq, p, 1);
8875125efe8402c kernel/sched/rt.c Kirill Tkhai       2014-06-29  1677  	resched_curr(rq);
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1678  }
7ebefa8ceefed44 kernel/sched_rt.c Dmitry Adamushko   2008-07-01  1679  

:::::: The code at line 1655 was first introduced by commit
:::::: c621dead3a640a6055afcb80a78a16be3eff3b8b ANDROID: sched: Push execution and scheduler context split into deadline and rt

:::::: TO: Connor O'Brien <connoro@google.com>
:::::: CC: John Stultz <jstultz@google.com>

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

                 reply	other threads:[~2026-07-03  3:21 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202607031125.epO7Q8C9-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=cros-kernel-buildreports@googlegroups.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.