CC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Xi Wang <[email protected]> TO: Ingo Molnar <[email protected]> TO: Peter Zijlstra <[email protected]> CC: Juri Lelli <[email protected]> CC: Vincent Guittot <[email protected]> CC: Dietmar Eggemann <[email protected]> CC: Steven Rostedt <[email protected]> CC: Mel Gorman <[email protected]> CC: [email protected] CC: [email protected] CC: Xi Wang <[email protected]>
Hi Xi, I love your patch! Perhaps something to improve: [auto build test WARNING on tip/sched/core] [also build test WARNING on tip/auto-latest linus/master v5.8] [cannot apply to block/for-next cgroup/for-next next-20200803] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Xi-Wang/sched-Make-select_idle_sibling-search-domain-configurable/20200728-150328 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 13efa616124f7eec7d6a58adeeef31864aa03879 :::::: branch date: 7 days ago :::::: commit date: 7 days ago config: x86_64-randconfig-s022-20200803 (attached as .config) compiler: gcc-9 (Debian 9.3.0-14) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.2-117-g8c7aee71-dirty # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> sparse warnings: (new ones prefixed by >>) kernel/sched/fair.c:6270:33: sparse: sparse: incompatible types in comparison expression (different address spaces): >> kernel/sched/fair.c:6270:33: sparse: struct sched_domain [noderef] __rcu * kernel/sched/fair.c:6270:33: sparse: struct sched_domain * kernel/sched/fair.c:879:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity *se @@ got struct sched_entity [noderef] __rcu * @@ kernel/sched/fair.c:879:34: sparse: expected struct sched_entity *se kernel/sched/fair.c:879:34: sparse: got struct sched_entity [noderef] __rcu * kernel/sched/fair.c:10578: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/fair.c:10578:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:10578:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:5398:38: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:5398:38: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:5398:38: sparse: struct task_struct * kernel/sched/fair.c:5413:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:5413:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:5413:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:5644:1: sparse: sparse: symbol '__pcpu_scope_load_balance_mask' was not declared. Should it be static? kernel/sched/fair.c:5645:1: sparse: sparse: symbol '__pcpu_scope_select_idle_mask' was not declared. Should it be static? kernel/sched/fair.c:6591:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:6591:20: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:6591:20: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:6710:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:6710:9: sparse: expected struct sched_domain *[assigned] tmp kernel/sched/fair.c:6710:9: sparse: got struct sched_domain [noderef] __rcu *parent >> kernel/sched/fair.c:6752:1: sparse: sparse: symbol 'wake_idle_domain_mutex' >> was not declared. Should it be static? >> kernel/sched/fair.c:6767:48: sparse: sparse: incorrect type in argument 3 >> (different address spaces) @@ expected void * @@ got void [noderef] >> __user *buffer @@ >> kernel/sched/fair.c:6767:48: sparse: expected void * >> kernel/sched/fair.c:6767:48: sparse: got void [noderef] __user *buffer kernel/sched/fair.c:6949:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:6949:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:6949:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:7200:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@ kernel/sched/fair.c:7200:38: sparse: expected struct task_struct *curr kernel/sched/fair.c:7200:38: sparse: got struct task_struct [noderef] __rcu *curr kernel/sched/fair.c:8165:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/fair.c:8165:40: sparse: expected struct sched_domain *child kernel/sched/fair.c:8165:40: sparse: got struct sched_domain [noderef] __rcu *child kernel/sched/fair.c:8658:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:8658:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:8658:22: sparse: struct task_struct * kernel/sched/fair.c:9901: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/fair.c:9901:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:9901:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:9561:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/fair.c:9561:44: sparse: expected struct sched_domain *sd_parent kernel/sched/fair.c:9561:44: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:9979: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/fair.c:9979:9: sparse: expected struct sched_domain *[assigned] sd kernel/sched/fair.c:9979:9: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/fair.c:10779:22: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:10779:22: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:10779:22: sparse: struct task_struct * kernel/sched/fair.c:10912:30: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/fair.c:10912:30: sparse: struct task_struct [noderef] __rcu * kernel/sched/fair.c:10912:30: sparse: struct task_struct * kernel/sched/fair.c:5342:35: sparse: sparse: marked inline, but without a definition kernel/sched/fair.c: note: in included file: kernel/sched/sched.h:1834:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/sched/sched.h:1834:9: sparse: struct task_struct [noderef] __rcu * kernel/sched/sched.h:1834:9: sparse: struct task_struct * -- kernel/sched/topology.c:83:56: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/topology.c:83:56: sparse: expected struct sched_domain *sd kernel/sched/topology.c:83:56: sparse: got struct sched_domain [noderef] __rcu *child kernel/sched/topology.c:102:60: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:102:60: sparse: expected struct sched_domain *sd kernel/sched/topology.c:102:60: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/topology.c:125:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:125:20: sparse: expected struct sched_domain *sd kernel/sched/topology.c:125:20: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/topology.c:434:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct perf_domain *pd @@ got struct perf_domain [noderef] __rcu *pd @@ kernel/sched/topology.c:434:19: sparse: expected struct perf_domain *pd kernel/sched/topology.c:434:19: sparse: got struct perf_domain [noderef] __rcu *pd kernel/sched/topology.c:595:49: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:595:49: sparse: expected struct sched_domain *parent kernel/sched/topology.c:595:49: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/topology.c:645:17: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:645:17: sparse: expected struct sched_domain *[assigned] sd kernel/sched/topology.c:645:17: sparse: got struct sched_domain [noderef] __rcu *parent >> kernel/sched/topology.c:666:17: sparse: sparse: incorrect type in assignment >> (different address spaces) @@ expected struct sched_domain *[assigned] >> sdp @@ got struct sched_domain [noderef] __rcu *parent @@ >> kernel/sched/topology.c:666:17: sparse: expected struct sched_domain >> *[assigned] sdp kernel/sched/topology.c:666:17: sparse: got struct sched_domain [noderef] __rcu *parent kernel/sched/topology.c:676:9: sparse: sparse: incompatible types in comparison expression (different address spaces): >> kernel/sched/topology.c:676:9: sparse: struct sched_domain [noderef] >> __rcu * kernel/sched/topology.c:676:9: sparse: struct sched_domain * kernel/sched/topology.c:700:50: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *parent @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:707:55: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain [noderef] __rcu *[noderef] __rcu child @@ got struct sched_domain *[assigned] tmp @@ kernel/sched/topology.c:717:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:722:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:731:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *sd @@ kernel/sched/topology.c:893:70: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/topology.c:922:59: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_domain *sd @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/topology.c:1092:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@ kernel/sched/topology.c:1395:43: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain [noderef] __rcu *child @@ got struct sched_domain *child @@ kernel/sched/topology.c:1881:31: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain [noderef] __rcu *parent @@ got struct sched_domain *sd @@ kernel/sched/topology.c:2050:57: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:2067:57: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c: note: in included file: kernel/sched/sched.h:1428: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/sched.h:1441: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/sched.h:1428: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/sched.h:1441:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@ kernel/sched/topology.c:1410:19: sparse: sparse: dereference of noderef expression Please review and possibly fold the followup patch. # https://github.com/0day-ci/linux/commit/7fc1ba3175b1f61ac6f92ce142fec7867b57e04d git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout 7fc1ba3175b1f61ac6f92ce142fec7867b57e04d vim +6270 kernel/sched/fair.c b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6196 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6197 /* 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6198 * Try and locate an idle core/thread in the sis domain. a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6199 */ 772bd008cd9a1d kernel/sched/fair.c Morten Rasmussen 2016-06-22 6200 static int select_idle_sibling(struct task_struct *p, int prev, int target) a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6201 { 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6202 struct sched_domain *sd_asym; 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6203 struct sched_domain *sd[2]; 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6204 struct cpumask *cpus = this_cpu_cpumask_var_ptr(select_idle_mask); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6205 int i, r, recent_used_cpu; a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6206 b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6207 /* b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6208 * For asymmetric CPU capacity systems, our domain of interest is 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6209 * sd_asym_cpucapacity rather than sd_sis. b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6210 */ b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6211 if (static_branch_unlikely(&sched_asym_cpucapacity)) { 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6212 sd_asym = rcu_dereference(per_cpu(sd_asym_cpucapacity, target)); b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6213 /* b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6214 * On an asymmetric CPU capacity system where an exclusive b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6215 * cpuset defines a symmetric island (i.e. one unique b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6216 * capacity_orig value through the cpuset), the key will be set b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6217 * but the CPUs within that cpuset will not have a domain with b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6218 * SD_ASYM_CPUCAPACITY. These should follow the usual symmetric b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6219 * capacity path. b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6220 */ 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6221 if (!sd_asym) b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6222 goto symmetric; b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6223 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6224 i = select_idle_capacity(p, sd_asym, target); b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6225 return ((unsigned)i < nr_cpumask_bits) ? i : target; b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6226 } b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6227 b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6228 symmetric: 3c29e651e16dd3 kernel/sched/fair.c Viresh Kumar 2019-06-26 6229 if (available_idle_cpu(target) || sched_idle_cpu(target)) e0a79f529d5ba2 kernel/sched/fair.c Mike Galbraith 2013-01-28 6230 return target; 99bd5e2f245d8c kernel/sched_fair.c Suresh Siddha 2010-03-31 6231 99bd5e2f245d8c kernel/sched_fair.c Suresh Siddha 2010-03-31 6232 /* 97fb7a0a8944bd kernel/sched/fair.c Ingo Molnar 2018-03-03 6233 * If the previous CPU is cache affine and idle, don't be stupid: a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6234 */ 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6235 if (prev != target && cpus_share_sis(prev, target) && 3c29e651e16dd3 kernel/sched/fair.c Viresh Kumar 2019-06-26 6236 (available_idle_cpu(prev) || sched_idle_cpu(prev))) 772bd008cd9a1d kernel/sched/fair.c Morten Rasmussen 2016-06-22 6237 return prev; a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6238 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6239 /* 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6240 * Allow a per-cpu kthread to stack with the wakee if the 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6241 * kworker thread and the tasks previous CPUs are the same. 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6242 * The assumption is that the wakee queued work for the 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6243 * per-cpu kthread that is now complete and the wakeup is 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6244 * essentially a sync wakeup. An obvious example of this 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6245 * pattern is IO completions. 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6246 */ 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6247 if (is_per_cpu_kthread(current) && 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6248 prev == smp_processor_id() && 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6249 this_rq()->nr_running <= 1) { 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6250 return prev; 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6251 } 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6252 97fb7a0a8944bd kernel/sched/fair.c Ingo Molnar 2018-03-03 6253 /* Check a recently used CPU as a potential idle candidate: */ 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6254 recent_used_cpu = p->recent_used_cpu; 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6255 if (recent_used_cpu != prev && 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6256 recent_used_cpu != target && 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6257 cpus_share_sis(recent_used_cpu, target) && 3c29e651e16dd3 kernel/sched/fair.c Viresh Kumar 2019-06-26 6258 (available_idle_cpu(recent_used_cpu) || sched_idle_cpu(recent_used_cpu)) && 3bd3706251ee8a kernel/sched/fair.c Sebastian Andrzej Siewior 2019-04-23 6259 cpumask_test_cpu(p->recent_used_cpu, p->cpus_ptr)) { 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6260 /* 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6261 * Replace recent_used_cpu with prev as it is a potential 97fb7a0a8944bd kernel/sched/fair.c Ingo Molnar 2018-03-03 6262 * candidate for the next wake: 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6263 */ 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6264 p->recent_used_cpu = prev; 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6265 return recent_used_cpu; 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6266 } 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6267 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6268 for (i = 0; ; i++) { 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6269 if (i == 0) { 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 @6270 sd[0] = rcu_dereference(per_cpu(sd_sis_pre, target)); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6271 if (!sd[0]) 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6272 continue; 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6273 cpumask_and(cpus, sched_domain_span(sd[0]), p->cpus_ptr); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6274 } else if (i == 1) { 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6275 sd[1] = rcu_dereference(per_cpu(sd_sis, target)); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6276 if (!sd[1]) 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6277 continue; 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6278 cpumask_and(cpus, sched_domain_span(sd[1]), p->cpus_ptr); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6279 if (sd[0]) 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6280 cpumask_andnot(cpus, cpus, sched_domain_span(sd[0])); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6281 } else { 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6282 break; 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6283 } 772bd008cd9a1d kernel/sched/fair.c Morten Rasmussen 2016-06-22 6284 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6285 r = select_idle_core(p, cpus, target); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6286 if ((unsigned)r < nr_cpumask_bits) 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6287 return r; 37407ea7f93864 kernel/sched/fair.c Linus Torvalds 2012-09-16 6288 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6289 r = select_idle_cpu(p, cpus, (i == 1), sd[i]->span_weight, target); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6290 if ((unsigned)r < nr_cpumask_bits) 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6291 return r; 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6292 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6293 r = select_idle_smt(p, target); 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6294 if ((unsigned)r < nr_cpumask_bits) 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6295 return r; 7fc1ba3175b1f6 kernel/sched/fair.c Xi Wang 2020-07-28 6296 } a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6297 a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6298 return target; a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6299 } 231678b768da07 kernel/sched/fair.c Dietmar Eggemann 2015-08-14 6300 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
