All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>
Cc: kbuild-all@lists.01.org, LKML <linux-kernel@vger.kernel.org>,
	Mel Gorman <mgorman@suse.de>, Rik van Riel <riel@surriel.com>,
	Srikar Dronamraju <srikar@linux.vnet.ibm.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>
Subject: Re: [PATCH 09/10] sched/topology: Introduce fallback LLC
Date: Thu, 22 Apr 2021 23:10:43 +0800	[thread overview]
Message-ID: <202104222322.VVzXZkQV-lkp@intel.com> (raw)
In-Reply-To: <20210422102326.35889-10-srikar@linux.vnet.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 20542 bytes --]

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@intel.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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36822 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 09/10] sched/topology: Introduce fallback LLC
Date: Thu, 22 Apr 2021 23:10:43 +0800	[thread overview]
Message-ID: <202104222322.VVzXZkQV-lkp@intel.com> (raw)
In-Reply-To: <20210422102326.35889-10-srikar@linux.vnet.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 20781 bytes --]

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@intel.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(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36822 bytes --]

  reply	other threads:[~2021-04-22 15:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-22 10:23 [PATCH 00/10] sched/fair: wake_affine improvements Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 01/10] sched/fair: Update affine statistics when needed Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 02/10] sched/fair: Maintain the identity of idle-core Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 03/10] sched/fair: Update idle-core more often Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 04/10] sched/fair: Prefer idle CPU to cache affinity Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 05/10] sched/fair: Call wake_affine only if necessary Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 06/10] sched/idle: Move busy_cpu accounting to idle callback Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 07/10] sched/fair: Remove ifdefs in waker_affine_idler_llc Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 08/10] sched/fair: Dont iterate if no idle CPUs Srikar Dronamraju
2021-04-22 10:23 ` [PATCH 09/10] sched/topology: Introduce fallback LLC Srikar Dronamraju
2021-04-22 15:10   ` kernel test robot [this message]
2021-04-22 15:10     ` kernel test robot
2021-04-22 10:23 ` [PATCH 10/10] powerpc/smp: Add fallback flag to powerpc MC domain Srikar Dronamraju
2021-04-23  8:25 ` [PATCH 00/10] sched/fair: wake_affine improvements Mel Gorman
2021-04-23 10:31   ` Srikar Dronamraju
2021-04-23 12:38     ` Mel Gorman
2021-04-26 10:30       ` Srikar Dronamraju
2021-04-26 11:35         ` Mel Gorman
2021-04-26 10:39   ` Srikar Dronamraju
2021-04-26 11:41     ` Mel Gorman
2021-04-28 12:57       ` Srikar Dronamraju
2021-04-27 14:52 ` Vincent Guittot
2021-04-28 12:49   ` Srikar Dronamraju

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202104222322.VVzXZkQV-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mgorman@suse.de \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=riel@surriel.com \
    --cc=srikar@linux.vnet.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=valentin.schneider@arm.com \
    --cc=vincent.guittot@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.