From: kernel test robot <lkp@intel.com>
To: Chen Yu <yu.c.chen@intel.com>
Cc: kbuild-all@lists.01.org, Chen Yu <yu.c.chen@intel.com>,
linux-kernel@vger.kernel.org
Subject: [yu-chen-surf:sis 1/1] kernel/sched/fair.c:9317:19: sparse: sparse: incompatible types in comparison expression (different type sizes):
Date: Tue, 10 May 2022 20:00:51 +0800 [thread overview]
Message-ID: <202205101914.mxQiTOkX-lkp@intel.com> (raw)
tree: https://github.com/yu-chen-surf/linux.git sis
head: e59a4ccc3962b54c5488c142b073dcf9b85b5843
commit: e59a4ccc3962b54c5488c142b073dcf9b85b5843 [1/1] sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg
config: arc-randconfig-s031-20220509 (https://download.01.org/0day-ci/archive/20220510/202205101914.mxQiTOkX-lkp@intel.com/config)
compiler: arc-elf-gcc (GCC) 11.3.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/yu-chen-surf/linux/commit/e59a4ccc3962b54c5488c142b073dcf9b85b5843
git remote add yu-chen-surf https://github.com/yu-chen-surf/linux.git
git fetch --no-tags yu-chen-surf sis
git checkout e59a4ccc3962b54c5488c142b073dcf9b85b5843
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arc 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/fair.c:918: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:918:34: sparse: expected struct sched_entity *se
kernel/sched/fair.c:918:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:11027: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:11027:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:11027:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:5053:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5053:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:5053:22: sparse: struct task_struct *
kernel/sched/fair.c:5834:1: sparse: sparse: symbol '__pcpu_scope_load_balance_mask' was not declared. Should it be static?
kernel/sched/fair.c:5835:1: sparse: sparse: symbol '__pcpu_scope_select_idle_mask' was not declared. Should it be static?
kernel/sched/fair.c:6817: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:6817:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:6817:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:6951: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:6951:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:6951:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:7149: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:7149:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:7149:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:7447: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:7447:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:7447:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:8432: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:8432:40: sparse: expected struct sched_domain *child
kernel/sched/fair.c:8432:40: sparse: got struct sched_domain [noderef] __rcu *child
kernel/sched/fair.c:8976:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:8976:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:8976:22: sparse: struct task_struct *
kernel/sched/fair.c:10302: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:10302:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:10302:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:9962: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:9962:44: sparse: expected struct sched_domain *sd_parent
kernel/sched/fair.c:9962:44: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:10398: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:10398:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:10398:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:4693:31: sparse: sparse: marked inline, but without a definition
kernel/sched/fair.c: note: in included file:
kernel/sched/sched.h:2169:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2169:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2169:9: sparse: struct task_struct *
>> kernel/sched/fair.c:9317:19: sparse: sparse: incompatible types in comparison expression (different type sizes):
>> kernel/sched/fair.c:9317:19: sparse: int *
>> kernel/sched/fair.c:9317:19: sparse: long *
kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2011:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2011:25: sparse: struct task_struct *
kernel/sched/sched.h:2011:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2011:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2011:25: sparse: struct task_struct *
vim +9317 kernel/sched/fair.c
9267
9268 static inline void update_idle_cpu_scan(struct lb_env *env,
9269 unsigned long sum_util)
9270 {
9271 struct sched_domain_shared *sd_share;
9272 int nr_scan, nr_llc, x, y;
9273
9274 if (!sched_feat(SIS_UTIL))
9275 return;
9276 /*
9277 * Update the number of CPUs to scan in LLC domain, which could
9278 * be used as a hint in select_idle_cpu(). The update of this hint
9279 * occurs during periodic load balancing, rather than frequent
9280 * newidle balance.
9281 */
9282 nr_llc = per_cpu(sd_llc_size, env->dst_cpu);
9283 if (env->idle == CPU_NEWLY_IDLE ||
9284 env->sd->span_weight != nr_llc)
9285 return;
9286
9287 sd_share = rcu_dereference(per_cpu(sd_llc_shared, env->dst_cpu));
9288 if (!sd_share)
9289 return;
9290
9291 /*
9292 * The number of CPUs to search drops as sum_util increases, when
9293 * sum_util hits 85% or above, the scan stops.
9294 * The reason to choose 85% as the threshold is because this is the
9295 * imbalance_pct(117) when a LLC sched group is overloaded.
9296 *
9297 * let y = 1 - (x/0.85)^2 [1]
9298 *
9299 * y is the ratio of CPUs to be scanned in the LLC
9300 * domain, x is the ratio of sum_util compared to the
9301 * CPU capacity:
9302 *
9303 * x = sum_util / (nr_llc * SCHED_CAPACITY_SCALE) [2]
9304 *
9305 * Scale x by SCHED_CAPACITY_SCALE and [2] becomes:
9306 *
9307 * x = sum_util / nr_llc [3]
9308 *
9309 * and [1] becomes:
9310 *
9311 * y = (SCHED_CAPACITY_SCALE - (x*x)/740) / SCHED_CAPACITY_SCALE [4]
9312 *
9313 * then the number of CPUs to scan is nr_scan = nr_llc * y
9314 */
9315 x = sum_util / nr_llc;
9316 y = SCHED_CAPACITY_SCALE - (x * x) / 740;
> 9317 nr_scan = max(0, nr_llc * y / SCHED_CAPACITY_SCALE);
9318 WRITE_ONCE(sd_share->nr_idle_scan, nr_scan);
9319 }
9320
--
0-DAY CI Kernel Test Service
https://01.org/lkp
reply other threads:[~2022-05-10 12:01 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202205101914.mxQiTOkX-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=yu.c.chen@intel.com \
/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.