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]

Attachment: .config.gz
Description: application/gzip

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

Reply via email to