lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202104222322.VVzXZkQV-lkp@intel.com>
Date:   Thu, 22 Apr 2021 23:10:43 +0800
From:   kernel test robot <lkp@...el.com>
To:     Srikar Dronamraju <srikar@...ux.vnet.ibm.com>,
        Ingo Molnar <mingo@...nel.org>,
        Peter Zijlstra <peterz@...radead.org>
Cc:     kbuild-all@...ts.01.org, LKML <linux-kernel@...r.kernel.org>,
        Mel Gorman <mgorman@...e.de>, Rik van Riel <riel@...riel.com>,
        Srikar Dronamraju <srikar@...ux.vnet.ibm.com>,
        Thomas Gleixner <tglx@...utronix.de>,
        Valentin Schneider <valentin.schneider@....com>,
        Vincent Guittot <vincent.guittot@...aro.org>,
        Dietmar Eggemann <dietmar.eggemann@....com>
Subject: Re: [PATCH 09/10] sched/topology: Introduce fallback LLC

Hi Srikar,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on powerpc/next]
[also build test WARNING on linus/master v5.12-rc8]
[cannot apply to tip/sched/core tip/master next-20210422]
[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/Srikar-Dronamraju/sched-fair-wake_affine-improvements/20210422-182725
base:   https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: x86_64-randconfig-s022-20210421 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://github.com/0day-ci/linux/commit/dcb752591087d90fd4093094e42baf167fdcae7b
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Srikar-Dronamraju/sched-fair-wake_affine-improvements/20210422-182725
        git checkout dcb752591087d90fd4093094e42baf167fdcae7b
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>


sparse warnings: (new ones prefixed by >>)
   kernel/sched/topology.c:106: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:106:56: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:106:56: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:125: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:125:60: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:125:60: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:148: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:148:20: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:148:20: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:431:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct perf_domain *[assigned] tmp @@     got struct perf_domain [noderef] __rcu *pd @@
   kernel/sched/topology.c:431:13: sparse:     expected struct perf_domain *[assigned] tmp
   kernel/sched/topology.c:431:13: sparse:     got struct perf_domain [noderef] __rcu *pd
   kernel/sched/topology.c:440:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct perf_domain *[assigned] tmp @@     got struct perf_domain [noderef] __rcu *pd @@
   kernel/sched/topology.c:440:13: sparse:     expected struct perf_domain *[assigned] tmp
   kernel/sched/topology.c:440:13: sparse:     got struct perf_domain [noderef] __rcu *pd
   kernel/sched/topology.c:461:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct perf_domain *[assigned] pd @@     got struct perf_domain [noderef] __rcu *pd @@
   kernel/sched/topology.c:461:19: sparse:     expected struct perf_domain *[assigned] pd
   kernel/sched/topology.c:461:19: sparse:     got struct perf_domain [noderef] __rcu *pd
   kernel/sched/topology.c:635: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:635:49: sparse:     expected struct sched_domain *parent
   kernel/sched/topology.c:635:49: sparse:     got struct sched_domain [noderef] __rcu *parent
>> kernel/sched/topology.c:678:52: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected struct sched_domain *sd_parent @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:678:52: sparse:     expected struct sched_domain *sd_parent
   kernel/sched/topology.c:678:52: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:686:81: 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:686:81: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:686:81: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:742: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:742:50: sparse:     expected struct sched_domain *parent
   kernel/sched/topology.c:742:50: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:749: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:749:55: sparse:     expected struct sched_domain [noderef] __rcu *[noderef] __rcu child
   kernel/sched/topology.c:749:55: sparse:     got struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:759: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:759:29: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:759:29: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:764: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:764:20: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:764:20: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:770:33: 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:770:33: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:770:33: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:805: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:805:13: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:805:13: sparse:     got struct sched_domain [noderef] __rcu *sd
   kernel/sched/topology.c:967: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:967:70: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:967:70: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:996: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:996:59: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:996:59: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1166: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:1166:40: sparse:     expected struct sched_domain *child
   kernel/sched/topology.c:1166:40: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1468: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:1468:43: sparse:     expected struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1468:43: sparse:     got struct sched_domain *child
   kernel/sched/topology.c:1955: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:1955:31: sparse:     expected struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:1955:31: sparse:     got struct sched_domain *sd
   kernel/sched/topology.c:2123: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:2123:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2123:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2140: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:2140:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2140:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:59:25: sparse: sparse: dereference of noderef expression
   kernel/sched/topology.c:64:25: sparse: sparse: dereference of noderef expression
   kernel/sched/topology.c: note: in included file:
   kernel/sched/sched.h:1459: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:1459:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1459:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/sched.h:1472: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:1472:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1472:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/sched.h:1459: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:1459:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1459:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/sched.h:1472: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:1472:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1472:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:1483:19: sparse: sparse: dereference of noderef expression
--
   kernel/sched/fair.c:861: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:861:34: sparse:     expected struct sched_entity *se
   kernel/sched/fair.c:861:34: sparse:     got struct sched_entity [noderef] __rcu *
   kernel/sched/fair.c:10750: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:10750:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:10750:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:4907:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/fair.c:4907:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/fair.c:4907:22: sparse:    struct task_struct *
   kernel/sched/fair.c:5430: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:5430:38: sparse:     expected struct task_struct *curr
   kernel/sched/fair.c:5430:38: sparse:     got struct task_struct [noderef] __rcu *curr
>> kernel/sched/fair.c:5905:80: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected struct sched_domain *sd @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/fair.c:5905:80: sparse:     expected struct sched_domain *sd
   kernel/sched/fair.c:5905:80: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:6755: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:6755:20: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:6755:20: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:6878: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:6878:9: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/fair.c:6878:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:7076: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:7076:38: sparse:     expected struct task_struct *curr
   kernel/sched/fair.c:7076:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/fair.c:7327: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:7327:38: sparse:     expected struct task_struct *curr
   kernel/sched/fair.c:7327:38: sparse:     got struct task_struct [noderef] __rcu *curr
   kernel/sched/fair.c:8298: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:8298:40: sparse:     expected struct sched_domain *child
   kernel/sched/fair.c:8298:40: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/fair.c:8791:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/fair.c:8791:22: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/fair.c:8791:22: sparse:    struct task_struct *
   kernel/sched/fair.c:10067: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:10067:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:10067:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:9723: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:9723:44: sparse:     expected struct sched_domain *sd_parent
   kernel/sched/fair.c:9723:44: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:10145: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:10145:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/fair.c:10145:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/fair.c:4575:31: sparse: sparse: marked inline, but without a definition
   kernel/sched/fair.c: note: in included file:
   kernel/sched/sched.h:1730:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1730:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1730:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1885:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1885:9: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1885:9: sparse:    struct task_struct *
   kernel/sched/sched.h:1730:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1730:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1730:25: sparse:    struct task_struct *
   kernel/sched/sched.h:1730:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
   kernel/sched/sched.h:1730:25: sparse:    struct task_struct [noderef] __rcu *
   kernel/sched/sched.h:1730:25: sparse:    struct task_struct *

vim +678 kernel/sched/topology.c

   668	
   669	static void update_top_cache_domain(int cpu)
   670	{
   671		struct sched_domain_shared *sds = NULL;
   672		struct sched_domain *sd;
   673		int id = cpu;
   674		int size = 1;
   675	
   676		sd = highest_flag_domain(cpu, SD_SHARE_PKG_RESOURCES);
   677		if (sd) {
 > 678			struct sched_domain *sd_parent = sd->parent;
   679	
   680			id = cpumask_first(sched_domain_span(sd));
   681			size = cpumask_weight(sched_domain_span(sd));
   682			sds = sd->shared;
   683	
   684			if (sds->fallback_llc_id == -1 && sd_parent &&
   685					sd_parent->flags & SD_FALLBACK_LLC) {
   686				const struct cpumask *parent_span = sched_domain_span(sd->parent);
   687				struct cpumask *span = sched_domains_tmpmask;
   688				int fcpu;
   689	
   690				/*
   691				 * If LLC's parent domain has SD_FALLBACK_LLC flag
   692				 * set and this LLC's fallback_llc_id is not yet
   693				 * set, then walk through the LLC parent's domain to
   694				 * find a fallback_llc.
   695				 */
   696				cpumask_andnot(span, parent_span, sched_domain_span(sd));
   697				for_each_cpu_wrap(fcpu, span, cpu) {
   698					struct sched_domain_shared *next_sds;
   699	
   700					next_sds = rcu_dereference(per_cpu(sd_llc_shared, fcpu));
   701					if (next_sds && next_sds->fallback_llc_id == -1) {
   702						sds->fallback_llc_id = fcpu;
   703						next_sds->fallback_llc_id = cpu;
   704						break;
   705					}
   706				}
   707			}
   708		}
   709	
   710		rcu_assign_pointer(per_cpu(sd_llc, cpu), sd);
   711		per_cpu(sd_llc_size, cpu) = size;
   712		per_cpu(sd_llc_id, cpu) = id;
   713	#ifdef CONFIG_SCHED_SMT
   714		per_cpu(smt_id, cpu) = cpumask_first(cpu_smt_mask(cpu));
   715	#endif
   716		per_cpu(is_idle, cpu) = 1;
   717		rcu_assign_pointer(per_cpu(sd_llc_shared, cpu), sds);
   718	
   719		sd = lowest_flag_domain(cpu, SD_NUMA);
   720		rcu_assign_pointer(per_cpu(sd_numa, cpu), sd);
   721	
   722		sd = highest_flag_domain(cpu, SD_ASYM_PACKING);
   723		rcu_assign_pointer(per_cpu(sd_asym_packing, cpu), sd);
   724	
   725		sd = lowest_flag_domain(cpu, SD_ASYM_CPUCAPACITY);
   726		rcu_assign_pointer(per_cpu(sd_asym_cpucapacity, cpu), sd);
   727	}
   728	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (36822 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ