All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 2/2] sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans multiple LLCs
Date: Sat, 27 Nov 2021 07:22:21 +0800	[thread overview]
Message-ID: <202111270726.GViokiOt-lkp@intel.com> (raw)
In-Reply-To: <20211125151941.8710-3-mgorman@techsingularity.net>

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

Hi Mel,

I love your patch! Perhaps something to improve:

[auto build test WARNING on tip/sched/core]
[also build test WARNING on tip/master linux/master linus/master v5.16-rc2 next-20211126]
[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/Mel-Gorman/Adjust-NUMA-imbalance-for-multiple-LLCs/20211125-232336
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 8c92606ab81086db00cbb73347d124b4eb169b7e
config: s390-randconfig-s032-20211126 (https://download.01.org/0day-ci/archive/20211127/202111270726.GViokiOt-lkp(a)intel.com/config)
compiler: s390-linux-gcc (GCC) 11.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://github.com/0day-ci/linux/commit/b4d95a034cffb1e4424874645549d3cac2de5c02
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Mel-Gorman/Adjust-NUMA-imbalance-for-multiple-LLCs/20211125-232336
        git checkout b4d95a034cffb1e4424874645549d3cac2de5c02
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=s390 SHELL=/bin/bash kernel/sched/

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:461: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:461:19: sparse:     expected struct perf_domain *pd
   kernel/sched/topology.c:461:19: sparse:     got struct perf_domain [noderef] __rcu *pd
   kernel/sched/topology.c:623: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:623:49: sparse:     expected struct sched_domain *parent
   kernel/sched/topology.c:623:49: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:694: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:694:50: sparse:     expected struct sched_domain *parent
   kernel/sched/topology.c:694:50: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:701: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:701:55: sparse:     expected struct sched_domain [noderef] __rcu *[noderef] __rcu child
   kernel/sched/topology.c:701:55: sparse:     got struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:711: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:711:29: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:711:29: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:716: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:716:20: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:716:20: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:737: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:737:13: sparse:     expected struct sched_domain *[assigned] tmp
   kernel/sched/topology.c:737:13: sparse:     got struct sched_domain [noderef] __rcu *sd
   kernel/sched/topology.c:899: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:899:70: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:899:70: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:928: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:928:59: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:928:59: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:974:57: 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:974:57: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:974:57: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:976:25: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *sibling @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:976:25: sparse:     expected struct sched_domain *sibling
   kernel/sched/topology.c:976:25: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:984:55: 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:984:55: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:984:55: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:986:25: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *sibling @@     got struct sched_domain [noderef] __rcu *child @@
   kernel/sched/topology.c:986:25: sparse:     expected struct sched_domain *sibling
   kernel/sched/topology.c:986:25: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1056:62: 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:1056:62: sparse:     expected struct sched_domain *sd
   kernel/sched/topology.c:1056:62: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1160: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:1160:40: sparse:     expected struct sched_domain *child
   kernel/sched/topology.c:1160:40: sparse:     got struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1571: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:1571:43: sparse:     expected struct sched_domain [noderef] __rcu *child
   kernel/sched/topology.c:1571:43: sparse:     got struct sched_domain *child
   kernel/sched/topology.c:2130: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:2130:31: sparse:     expected struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2130:31: sparse:     got struct sched_domain *sd
   kernel/sched/topology.c:2233: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:2233:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2233:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2248:56: 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:2248:56: sparse:     expected struct sched_domain *child
   kernel/sched/topology.c:2248:56: sparse:     got struct sched_domain [noderef] __rcu *child
>> kernel/sched/topology.c:2263:49: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *sd_numa @@     got struct sched_domain [noderef] __rcu *parent @@
   kernel/sched/topology.c:2263:49: sparse:     expected struct sched_domain *sd_numa
   kernel/sched/topology.c:2263:49: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2247: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:2247:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2247:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:2274: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:2274:57: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/topology.c:2274:57: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c: note: in included file:
   kernel/sched/sched.h:1744: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:1744:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1744:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/sched.h:1757: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:1757:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1757:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/sched.h:1744: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:1744:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1744:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/sched.h:1757: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:1757:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/sched.h:1757:9: sparse:     got struct sched_domain [noderef] __rcu *parent
   kernel/sched/topology.c:929:31: sparse: sparse: dereference of noderef expression
   kernel/sched/topology.c:1592:19: sparse: sparse: dereference of noderef expression

vim +2263 kernel/sched/topology.c

  2186	
  2187	/*
  2188	 * Build sched domains for a given set of CPUs and attach the sched domains
  2189	 * to the individual CPUs
  2190	 */
  2191	static int
  2192	build_sched_domains(const struct cpumask *cpu_map, struct sched_domain_attr *attr)
  2193	{
  2194		enum s_alloc alloc_state = sa_none;
  2195		struct sched_domain *sd;
  2196		struct s_data d;
  2197		struct rq *rq = NULL;
  2198		int i, ret = -ENOMEM;
  2199		bool has_asym = false;
  2200	
  2201		if (WARN_ON(cpumask_empty(cpu_map)))
  2202			goto error;
  2203	
  2204		alloc_state = __visit_domain_allocation_hell(&d, cpu_map);
  2205		if (alloc_state != sa_rootdomain)
  2206			goto error;
  2207	
  2208		/* Set up domains for CPUs specified by the cpu_map: */
  2209		for_each_cpu(i, cpu_map) {
  2210			struct sched_domain_topology_level *tl;
  2211	
  2212			sd = NULL;
  2213			for_each_sd_topology(tl) {
  2214	
  2215				if (WARN_ON(!topology_span_sane(tl, cpu_map, i)))
  2216					goto error;
  2217	
  2218				sd = build_sched_domain(tl, cpu_map, attr, sd, i);
  2219	
  2220				has_asym |= sd->flags & SD_ASYM_CPUCAPACITY;
  2221	
  2222				if (tl == sched_domain_topology)
  2223					*per_cpu_ptr(d.sd, i) = sd;
  2224				if (tl->flags & SDTL_OVERLAP)
  2225					sd->flags |= SD_OVERLAP;
  2226				if (cpumask_equal(cpu_map, sched_domain_span(sd)))
  2227					break;
  2228			}
  2229		}
  2230	
  2231		/* Build the groups for the domains */
  2232		for_each_cpu(i, cpu_map) {
  2233			for (sd = *per_cpu_ptr(d.sd, i); sd; sd = sd->parent) {
  2234				sd->span_weight = cpumask_weight(sched_domain_span(sd));
  2235				if (sd->flags & SD_OVERLAP) {
  2236					if (build_overlap_sched_groups(sd, i))
  2237						goto error;
  2238				} else {
  2239					if (build_sched_groups(sd, i))
  2240						goto error;
  2241				}
  2242			}
  2243		}
  2244	
  2245		/* Calculate allowed NUMA imbalance */
  2246		for_each_cpu(i, cpu_map) {
  2247			for (sd = *per_cpu_ptr(d.sd, i); sd; sd = sd->parent) {
  2248				struct sched_domain *child = sd->child;
  2249	
  2250				if (!(sd->flags & SD_SHARE_PKG_RESOURCES) &&
  2251				    (child->flags & SD_SHARE_PKG_RESOURCES)) {
  2252					struct sched_domain *sd_numa = sd;
  2253					int imb_numa_nr, nr_groups;
  2254	
  2255					nr_groups = sd->span_weight / child->span_weight;
  2256					imb_numa_nr = nr_groups / num_online_nodes();
  2257	
  2258					while (sd_numa) {
  2259						if (sd_numa->flags & SD_NUMA) {
  2260							sd_numa->imb_numa_nr = imb_numa_nr;
  2261							break;
  2262						}
> 2263						sd_numa = sd_numa->parent;
  2264					}
  2265				}
  2266			}
  2267		}
  2268	
  2269		/* Calculate CPU capacity for physical packages and nodes */
  2270		for (i = nr_cpumask_bits-1; i >= 0; i--) {
  2271			if (!cpumask_test_cpu(i, cpu_map))
  2272				continue;
  2273	
  2274			for (sd = *per_cpu_ptr(d.sd, i); sd; sd = sd->parent) {
  2275				claim_allocations(i, sd);
  2276				init_sched_groups_capacity(i, sd);
  2277			}
  2278		}
  2279	
  2280		/* Attach the domains */
  2281		rcu_read_lock();
  2282		for_each_cpu(i, cpu_map) {
  2283			rq = cpu_rq(i);
  2284			sd = *per_cpu_ptr(d.sd, i);
  2285	
  2286			/* Use READ_ONCE()/WRITE_ONCE() to avoid load/store tearing: */
  2287			if (rq->cpu_capacity_orig > READ_ONCE(d.rd->max_cpu_capacity))
  2288				WRITE_ONCE(d.rd->max_cpu_capacity, rq->cpu_capacity_orig);
  2289	
  2290			cpu_attach_domain(sd, d.rd, i);
  2291		}
  2292		rcu_read_unlock();
  2293	
  2294		if (has_asym)
  2295			static_branch_inc_cpuslocked(&sched_asym_cpucapacity);
  2296	
  2297		if (rq && sched_debug_verbose) {
  2298			pr_info("root domain span: %*pbl (max cpu_capacity = %lu)\n",
  2299				cpumask_pr_args(cpu_map), rq->rd->max_cpu_capacity);
  2300		}
  2301	
  2302		ret = 0;
  2303	error:
  2304		__free_domain_allocs(&d, alloc_state, cpu_map);
  2305	
  2306		return ret;
  2307	}
  2308	

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

  reply	other threads:[~2021-11-26 23:22 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-25 15:19 [PATCH 0/2] Adjust NUMA imbalance for multiple LLCs Mel Gorman
2021-11-25 15:19 ` [PATCH 1/2] sched/fair: Use weight of SD_NUMA domain in find_busiest_group Mel Gorman
2021-11-25 15:19 ` [PATCH 2/2] sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans multiple LLCs Mel Gorman
2021-11-26 23:22   ` kernel test robot [this message]
2021-11-28 15:06   ` [sched/fair] b4d95a034c: phoronix-test-suite.tiobench.RandomWrite.64MB.8.mb_s -26.3% regression kernel test robot
2021-11-28 15:06     ` kernel test robot
2021-11-29 11:35     ` Mel Gorman
2021-11-29 11:35       ` Mel Gorman
2021-12-01 15:18 [PATCH v3 0/2] Adjust NUMA imbalance for multiple LLCs Mel Gorman
2021-12-01 15:18 ` [PATCH 2/2] sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans " Mel Gorman
2021-12-03  8:15   ` Barry Song
2021-12-03 10:50     ` Mel Gorman
2021-12-03 11:14       ` Barry Song
2021-12-03 13:27         ` Mel Gorman
2021-12-04 10:40   ` Peter Zijlstra
2021-12-06  8:48     ` Gautham R. Shenoy
2021-12-06 14:51       ` Peter Zijlstra
2021-12-06 15:12     ` Mel Gorman
2021-12-09 14:23       ` Valentin Schneider
2021-12-09 15:43         ` Mel Gorman
2021-12-10  9:33 [PATCH v4 0/2] Adjust NUMA imbalance for " Mel Gorman
2021-12-10  9:33 ` [PATCH 2/2] sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans " Mel Gorman
2021-12-13  8:28   ` Gautham R. Shenoy
2021-12-13 13:01     ` Mel Gorman
2021-12-13 14:47       ` Gautham R. Shenoy
2021-12-15 11:52         ` Gautham R. Shenoy
2021-12-15 12:25           ` Mel Gorman
2021-12-16 18:33             ` Gautham R. Shenoy
2021-12-20 11:12               ` Mel Gorman
2021-12-21 15:03                 ` Gautham R. Shenoy
2021-12-21 17:13                 ` Vincent Guittot
2021-12-22  8:52                   ` Jirka Hladky
2022-01-04 19:52                     ` Jirka Hladky
2022-01-05 10:42                   ` Mel Gorman
2022-01-05 10:49                     ` Mel Gorman
2022-01-10 15:53                     ` Vincent Guittot
2022-01-12 10:24                       ` Mel Gorman
2021-12-17 19:54   ` Gautham R. Shenoy
2022-02-03 14:46 [PATCH v5 0/2] Adjust NUMA imbalance for " Mel Gorman
2022-02-03 14:46 ` [PATCH 2/2] sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans " Mel Gorman
2022-02-04  1:30   ` kernel test robot
2022-02-04  7:06   ` Srikar Dronamraju
2022-02-04  9:04     ` Mel Gorman
2022-02-04 15:07   ` Nayak, KPrateek (K Prateek)
2022-02-04 16:45     ` Mel Gorman
2022-02-08  9:43 [PATCH v6 0/2] Adjust NUMA imbalance for " Mel Gorman
2022-02-08  9:43 ` [PATCH 2/2] sched/fair: Adjust the allowed NUMA imbalance when SD_NUMA spans " Mel Gorman
2022-02-08 16:19   ` Gautham R. Shenoy
2022-02-09  5:10   ` K Prateek Nayak
2022-02-09 10:33     ` Mel Gorman
2022-02-11 19:02       ` Jirka Hladky
2022-02-14 10:27   ` Srikar Dronamraju
2022-02-14 11:03   ` Vincent Guittot

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=202111270726.GViokiOt-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.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.