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
next prev parent 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.