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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to