CC: [email protected] TO: Vincent Guittot <[email protected]>
tree: https://git.linaro.org/people/vincent.guittot/kernel.git sched/pelt head: c2ebc392e23b7958705576a49091fe407b0ad7b3 commit: c2ebc392e23b7958705576a49091fe407b0ad7b3 [1/1] sched/fair: prefer prev cpu in asymmetric wakeup path :::::: branch date: 11 hours ago :::::: commit date: 11 hours ago config: x86_64-randconfig-m001-20201026 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: kernel/sched/fair.c:6227 select_idle_sibling() error: uninitialized symbol 'task_util'. vim +/task_util +6227 kernel/sched/fair.c c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6208 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6209 /* 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6210 * Try and locate an idle core/thread in the LLC cache domain. a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6211 */ 772bd008cd9a1d kernel/sched/fair.c Morten Rasmussen 2016-06-22 6212 static int select_idle_sibling(struct task_struct *p, int prev, int target) a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6213 { 99bd5e2f245d8c kernel/sched_fair.c Suresh Siddha 2010-03-31 6214 struct sched_domain *sd; c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6215 int i, recent_used_cpu, task_util; a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6216 b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6217 /* c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6218 * On asymmetric system, update task utilization because we will check c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6219 * that the task fits with cpu's capacity. b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6220 */ b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6221 if (static_branch_unlikely(&sched_asym_cpucapacity)) { c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6222 sync_entity_load_avg(&p->se); c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6223 task_util = uclamp_task_util(p); b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6224 } b7a331615d2541 kernel/sched/fair.c Morten Rasmussen 2020-02-06 6225 c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6226 if ((available_idle_cpu(target) || sched_idle_cpu(target)) && c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 @6227 asym_fits_capacity(task_util, target)) e0a79f529d5ba2 kernel/sched/fair.c Mike Galbraith 2013-01-28 6228 return target; 99bd5e2f245d8c kernel/sched_fair.c Suresh Siddha 2010-03-31 6229 99bd5e2f245d8c kernel/sched_fair.c Suresh Siddha 2010-03-31 6230 /* 97fb7a0a8944bd kernel/sched/fair.c Ingo Molnar 2018-03-03 6231 * If the previous CPU is cache affine and idle, don't be stupid: a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6232 */ 3c29e651e16dd3 kernel/sched/fair.c Viresh Kumar 2019-06-26 6233 if (prev != target && cpus_share_cache(prev, target) && c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6234 (available_idle_cpu(prev) || sched_idle_cpu(prev)) && c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6235 asym_fits_capacity(task_util, prev)) 772bd008cd9a1d kernel/sched/fair.c Morten Rasmussen 2016-06-22 6236 return prev; a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6237 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6238 /* 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6239 * Allow a per-cpu kthread to stack with the wakee if the 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6240 * kworker thread and the tasks previous CPUs are the same. 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6241 * The assumption is that the wakee queued work for the 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6242 * per-cpu kthread that is now complete and the wakeup is 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6243 * essentially a sync wakeup. An obvious example of this 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6244 * pattern is IO completions. 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6245 */ 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6246 if (is_per_cpu_kthread(current) && 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6247 prev == smp_processor_id() && 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6248 this_rq()->nr_running <= 1) { 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6249 return prev; 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6250 } 52262ee567ad14 kernel/sched/fair.c Mel Gorman 2020-01-28 6251 97fb7a0a8944bd kernel/sched/fair.c Ingo Molnar 2018-03-03 6252 /* Check a recently used CPU as a potential idle candidate: */ 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6253 recent_used_cpu = p->recent_used_cpu; 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6254 if (recent_used_cpu != prev && 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6255 recent_used_cpu != target && 32e839dda3ba57 kernel/sched/fair.c Mel Gorman 2018-01-30 6256 cpus_share_cache(recent_used_cpu, target) && 3c29e651e16dd3 kernel/sched/fair.c Viresh Kumar 2019-06-26 6257 (available_idle_cpu(recent_used_cpu) || sched_idle_cpu(recent_used_cpu)) && c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6258 cpumask_test_cpu(p->recent_used_cpu, p->cpus_ptr) && c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6259 asym_fits_capacity(task_util, recent_used_cpu)) { 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 c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6268 /* c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6269 * For asymmetric CPU capacity systems, our domain of interest is c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6270 * sd_asym_cpucapacity rather than sd_llc. c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6271 */ c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6272 if (static_branch_unlikely(&sched_asym_cpucapacity)) { c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6273 sd = rcu_dereference(per_cpu(sd_asym_cpucapacity, target)); c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6274 /* c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6275 * On an asymmetric CPU capacity system where an exclusive c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6276 * cpuset defines a symmetric island (i.e. one unique c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6277 * capacity_orig value through the cpuset), the key will be set c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6278 * but the CPUs within that cpuset will not have a domain with c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6279 * SD_ASYM_CPUCAPACITY. These should follow the usual symmetric c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6280 * capacity path. c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6281 */ c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6282 if (sd) { c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6283 i = select_idle_capacity(p, sd, target); c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6284 return ((unsigned)i < nr_cpumask_bits) ? i : target; c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6285 } c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6286 } c2ebc392e23b79 kernel/sched/fair.c Vincent Guittot 2020-10-21 6287 518cd62341786a kernel/sched/fair.c Peter Zijlstra 2011-12-07 6288 sd = rcu_dereference(per_cpu(sd_llc, target)); 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6289 if (!sd) 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6290 return target; 772bd008cd9a1d kernel/sched/fair.c Morten Rasmussen 2016-06-22 6291 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6292 i = select_idle_core(p, sd, target); 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6293 if ((unsigned)i < nr_cpumask_bits) 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6294 return i; 37407ea7f93864 kernel/sched/fair.c Linus Torvalds 2012-09-16 6295 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6296 i = select_idle_cpu(p, sd, target); 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6297 if ((unsigned)i < nr_cpumask_bits) 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6298 return i; 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6299 df3cb4ea1fb63f kernel/sched/fair.c Xunlei Pang 2020-09-24 6300 i = select_idle_smt(p, sd, target); 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6301 if ((unsigned)i < nr_cpumask_bits) 10e2f1acd0106c kernel/sched/fair.c Peter Zijlstra 2016-05-09 6302 return i; a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6303 a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6304 return target; a50bde5130f657 kernel/sched_fair.c Peter Zijlstra 2009-11-12 6305 } 231678b768da07 kernel/sched/fair.c Dietmar Eggemann 2015-08-14 6306 --- 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]
