From: Chengming Zhou <zhouchengming@bytedance.com> To: kernel test robot <lkp@intel.com>, mingo@redhat.com, peterz@infradead.org, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, odin@uged.al Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, duanxiongchun@bytedance.com, songmuchun@bytedance.com Subject: Re: [External] Re: [PATCH v2 2/2] sched/fair: optimize and simplify rq leaf_cfs_rq_list Date: Thu, 26 May 2022 18:25:03 +0800 [thread overview] Message-ID: <843a2292-b62d-a2cf-e87c-e01d920721ef@bytedance.com> (raw) In-Reply-To: <202205261617.YUT1ixQ8-lkp@intel.com> On 2022/5/26 16:53, kernel test robot wrote: > Hi Chengming, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on tip/sched/core] > [also build test ERROR on tip/master linus/master v5.18 next-20220525] > [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/intel-lab-lkp/linux/commits/Chengming-Zhou/sched-fair-optimize-and-simplify-rq-leaf_cfs_rq_list/20220526-151850 > base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 991d8d8142cad94f9c5c05db25e67fa83d6f772a > config: powerpc-allnoconfig (https://download.01.org/0day-ci/archive/20220526/202205261617.YUT1ixQ8-lkp@intel.com/config) > compiler: powerpc-linux-gcc (GCC) 11.3.0 > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://github.com/intel-lab-lkp/linux/commit/cb2b1810aeb3f8f290a932f3e625ab9df1110054 > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Chengming-Zhou/sched-fair-optimize-and-simplify-rq-leaf_cfs_rq_list/20220526-151850 > git checkout cb2b1810aeb3f8f290a932f3e625ab9df1110054 > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash kernel/sched/ > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@intel.com> Thanks, will fix !CONFIG_FAIR_GROUP_SCHED build next version. > > All errors (new ones prefixed by >>): > > kernel/sched/fair.c:645:5: warning: no previous prototype for 'sched_update_scaling' [-Wmissing-prototypes] > 645 | int sched_update_scaling(void) > | ^~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c: In function 'enqueue_entity': >>> kernel/sched/fair.c:4343:22: error: implicit declaration of function 'throttled_hierarchy' [-Werror=implicit-function-declaration] > 4343 | if (!throttled_hierarchy(cfs_rq)) > | ^~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c: At top level: >>> kernel/sched/fair.c:5484:19: error: static declaration of 'throttled_hierarchy' follows non-static declaration > 5484 | static inline int throttled_hierarchy(struct cfs_rq *cfs_rq) > | ^~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:4343:22: note: previous implicit declaration of 'throttled_hierarchy' with type 'int()' > 4343 | if (!throttled_hierarchy(cfs_rq)) > | ^~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:5495:6: warning: no previous prototype for 'init_cfs_bandwidth' [-Wmissing-prototypes] > 5495 | void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {} > | ^~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11654:6: warning: no previous prototype for 'free_fair_sched_group' [-Wmissing-prototypes] > 11654 | void free_fair_sched_group(struct task_group *tg) { } > | ^~~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11656:5: warning: no previous prototype for 'alloc_fair_sched_group' [-Wmissing-prototypes] > 11656 | int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) > | ^~~~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11661:6: warning: no previous prototype for 'online_fair_sched_group' [-Wmissing-prototypes] > 11661 | void online_fair_sched_group(struct task_group *tg) { } > | ^~~~~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11663:6: warning: no previous prototype for 'unregister_fair_sched_group' [-Wmissing-prototypes] > 11663 | void unregister_fair_sched_group(struct task_group *tg) { } > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > > > vim +/throttled_hierarchy +4343 kernel/sched/fair.c > > 4263 > 4264 /* > 4265 * MIGRATION > 4266 * > 4267 * dequeue > 4268 * update_curr() > 4269 * update_min_vruntime() > 4270 * vruntime -= min_vruntime > 4271 * > 4272 * enqueue > 4273 * update_curr() > 4274 * update_min_vruntime() > 4275 * vruntime += min_vruntime > 4276 * > 4277 * this way the vruntime transition between RQs is done when both > 4278 * min_vruntime are up-to-date. > 4279 * > 4280 * WAKEUP (remote) > 4281 * > 4282 * ->migrate_task_rq_fair() (p->state == TASK_WAKING) > 4283 * vruntime -= min_vruntime > 4284 * > 4285 * enqueue > 4286 * update_curr() > 4287 * update_min_vruntime() > 4288 * vruntime += min_vruntime > 4289 * > 4290 * this way we don't have the most up-to-date min_vruntime on the originating > 4291 * CPU and an up-to-date min_vruntime on the destination CPU. > 4292 */ > 4293 > 4294 static void > 4295 enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags) > 4296 { > 4297 bool renorm = !(flags & ENQUEUE_WAKEUP) || (flags & ENQUEUE_MIGRATED); > 4298 bool curr = cfs_rq->curr == se; > 4299 > 4300 /* > 4301 * If we're the current task, we must renormalise before calling > 4302 * update_curr(). > 4303 */ > 4304 if (renorm && curr) > 4305 se->vruntime += cfs_rq->min_vruntime; > 4306 > 4307 update_curr(cfs_rq); > 4308 > 4309 /* > 4310 * Otherwise, renormalise after, such that we're placed at the current > 4311 * moment in time, instead of some random moment in the past. Being > 4312 * placed in the past could significantly boost this task to the > 4313 * fairness detriment of existing tasks. > 4314 */ > 4315 if (renorm && !curr) > 4316 se->vruntime += cfs_rq->min_vruntime; > 4317 > 4318 /* > 4319 * When enqueuing a sched_entity, we must: > 4320 * - Update loads to have both entity and cfs_rq synced with now. > 4321 * - Add its load to cfs_rq->runnable_avg > 4322 * - For group_entity, update its weight to reflect the new share of > 4323 * its group cfs_rq > 4324 * - Add its new weight to cfs_rq->load.weight > 4325 */ > 4326 update_load_avg(cfs_rq, se, UPDATE_TG | DO_ATTACH); > 4327 se_update_runnable(se); > 4328 update_cfs_group(se); > 4329 account_entity_enqueue(cfs_rq, se); > 4330 > 4331 if (flags & ENQUEUE_WAKEUP) > 4332 place_entity(cfs_rq, se, 0); > 4333 > 4334 check_schedstat_required(); > 4335 update_stats_enqueue_fair(cfs_rq, se, flags); > 4336 check_spread(cfs_rq, se); > 4337 if (!curr) > 4338 __enqueue_entity(cfs_rq, se); > 4339 se->on_rq = 1; > 4340 > 4341 if (cfs_rq->nr_running == 1) { > 4342 check_enqueue_throttle(cfs_rq); >> 4343 if (!throttled_hierarchy(cfs_rq)) > 4344 list_add_leaf_cfs_rq(cfs_rq); > 4345 } > 4346 } > 4347 >
WARNING: multiple messages have this Message-ID (diff)
From: Chengming Zhou <zhouchengming@bytedance.com> To: kbuild-all@lists.01.org Subject: Re: [External] Re: [PATCH v2 2/2] sched/fair: optimize and simplify rq leaf_cfs_rq_list Date: Thu, 26 May 2022 18:25:03 +0800 [thread overview] Message-ID: <843a2292-b62d-a2cf-e87c-e01d920721ef@bytedance.com> (raw) In-Reply-To: <202205261617.YUT1ixQ8-lkp@intel.com> [-- Attachment #1: Type: text/plain, Size: 7215 bytes --] On 2022/5/26 16:53, kernel test robot wrote: > Hi Chengming, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on tip/sched/core] > [also build test ERROR on tip/master linus/master v5.18 next-20220525] > [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/intel-lab-lkp/linux/commits/Chengming-Zhou/sched-fair-optimize-and-simplify-rq-leaf_cfs_rq_list/20220526-151850 > base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 991d8d8142cad94f9c5c05db25e67fa83d6f772a > config: powerpc-allnoconfig (https://download.01.org/0day-ci/archive/20220526/202205261617.YUT1ixQ8-lkp(a)intel.com/config) > compiler: powerpc-linux-gcc (GCC) 11.3.0 > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://github.com/intel-lab-lkp/linux/commit/cb2b1810aeb3f8f290a932f3e625ab9df1110054 > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Chengming-Zhou/sched-fair-optimize-and-simplify-rq-leaf_cfs_rq_list/20220526-151850 > git checkout cb2b1810aeb3f8f290a932f3e625ab9df1110054 > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash kernel/sched/ > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@intel.com> Thanks, will fix !CONFIG_FAIR_GROUP_SCHED build next version. > > All errors (new ones prefixed by >>): > > kernel/sched/fair.c:645:5: warning: no previous prototype for 'sched_update_scaling' [-Wmissing-prototypes] > 645 | int sched_update_scaling(void) > | ^~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c: In function 'enqueue_entity': >>> kernel/sched/fair.c:4343:22: error: implicit declaration of function 'throttled_hierarchy' [-Werror=implicit-function-declaration] > 4343 | if (!throttled_hierarchy(cfs_rq)) > | ^~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c: At top level: >>> kernel/sched/fair.c:5484:19: error: static declaration of 'throttled_hierarchy' follows non-static declaration > 5484 | static inline int throttled_hierarchy(struct cfs_rq *cfs_rq) > | ^~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:4343:22: note: previous implicit declaration of 'throttled_hierarchy' with type 'int()' > 4343 | if (!throttled_hierarchy(cfs_rq)) > | ^~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:5495:6: warning: no previous prototype for 'init_cfs_bandwidth' [-Wmissing-prototypes] > 5495 | void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {} > | ^~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11654:6: warning: no previous prototype for 'free_fair_sched_group' [-Wmissing-prototypes] > 11654 | void free_fair_sched_group(struct task_group *tg) { } > | ^~~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11656:5: warning: no previous prototype for 'alloc_fair_sched_group' [-Wmissing-prototypes] > 11656 | int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) > | ^~~~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11661:6: warning: no previous prototype for 'online_fair_sched_group' [-Wmissing-prototypes] > 11661 | void online_fair_sched_group(struct task_group *tg) { } > | ^~~~~~~~~~~~~~~~~~~~~~~ > kernel/sched/fair.c:11663:6: warning: no previous prototype for 'unregister_fair_sched_group' [-Wmissing-prototypes] > 11663 | void unregister_fair_sched_group(struct task_group *tg) { } > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > > > vim +/throttled_hierarchy +4343 kernel/sched/fair.c > > 4263 > 4264 /* > 4265 * MIGRATION > 4266 * > 4267 * dequeue > 4268 * update_curr() > 4269 * update_min_vruntime() > 4270 * vruntime -= min_vruntime > 4271 * > 4272 * enqueue > 4273 * update_curr() > 4274 * update_min_vruntime() > 4275 * vruntime += min_vruntime > 4276 * > 4277 * this way the vruntime transition between RQs is done when both > 4278 * min_vruntime are up-to-date. > 4279 * > 4280 * WAKEUP (remote) > 4281 * > 4282 * ->migrate_task_rq_fair() (p->state == TASK_WAKING) > 4283 * vruntime -= min_vruntime > 4284 * > 4285 * enqueue > 4286 * update_curr() > 4287 * update_min_vruntime() > 4288 * vruntime += min_vruntime > 4289 * > 4290 * this way we don't have the most up-to-date min_vruntime on the originating > 4291 * CPU and an up-to-date min_vruntime on the destination CPU. > 4292 */ > 4293 > 4294 static void > 4295 enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags) > 4296 { > 4297 bool renorm = !(flags & ENQUEUE_WAKEUP) || (flags & ENQUEUE_MIGRATED); > 4298 bool curr = cfs_rq->curr == se; > 4299 > 4300 /* > 4301 * If we're the current task, we must renormalise before calling > 4302 * update_curr(). > 4303 */ > 4304 if (renorm && curr) > 4305 se->vruntime += cfs_rq->min_vruntime; > 4306 > 4307 update_curr(cfs_rq); > 4308 > 4309 /* > 4310 * Otherwise, renormalise after, such that we're placed at the current > 4311 * moment in time, instead of some random moment in the past. Being > 4312 * placed in the past could significantly boost this task to the > 4313 * fairness detriment of existing tasks. > 4314 */ > 4315 if (renorm && !curr) > 4316 se->vruntime += cfs_rq->min_vruntime; > 4317 > 4318 /* > 4319 * When enqueuing a sched_entity, we must: > 4320 * - Update loads to have both entity and cfs_rq synced with now. > 4321 * - Add its load to cfs_rq->runnable_avg > 4322 * - For group_entity, update its weight to reflect the new share of > 4323 * its group cfs_rq > 4324 * - Add its new weight to cfs_rq->load.weight > 4325 */ > 4326 update_load_avg(cfs_rq, se, UPDATE_TG | DO_ATTACH); > 4327 se_update_runnable(se); > 4328 update_cfs_group(se); > 4329 account_entity_enqueue(cfs_rq, se); > 4330 > 4331 if (flags & ENQUEUE_WAKEUP) > 4332 place_entity(cfs_rq, se, 0); > 4333 > 4334 check_schedstat_required(); > 4335 update_stats_enqueue_fair(cfs_rq, se, flags); > 4336 check_spread(cfs_rq, se); > 4337 if (!curr) > 4338 __enqueue_entity(cfs_rq, se); > 4339 se->on_rq = 1; > 4340 > 4341 if (cfs_rq->nr_running == 1) { > 4342 check_enqueue_throttle(cfs_rq); >> 4343 if (!throttled_hierarchy(cfs_rq)) > 4344 list_add_leaf_cfs_rq(cfs_rq); > 4345 } > 4346 } > 4347 >
next prev parent reply other threads:[~2022-05-26 10:25 UTC|newest] Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-26 7:13 [PATCH v2 0/2] sched/fair: optimize and simplify rq leaf_cfs_rq_list Chengming Zhou 2022-05-26 7:13 ` [PATCH v2 1/2] sched/fair: fix propagate during synchronous attach/detach Chengming Zhou 2022-05-26 7:13 ` [PATCH v2 2/2] sched/fair: optimize and simplify rq leaf_cfs_rq_list Chengming Zhou 2022-05-26 8:53 ` kernel test robot 2022-05-26 10:25 ` Chengming Zhou [this message] 2022-05-26 10:25 ` [External] " Chengming Zhou 2022-05-26 10:46 ` kernel test robot
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=843a2292-b62d-a2cf-e87c-e01d920721ef@bytedance.com \ --to=zhouchengming@bytedance.com \ --cc=bristot@redhat.com \ --cc=bsegall@google.com \ --cc=dietmar.eggemann@arm.com \ --cc=duanxiongchun@bytedance.com \ --cc=juri.lelli@redhat.com \ --cc=kbuild-all@lists.01.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lkp@intel.com \ --cc=mgorman@suse.de \ --cc=mingo@redhat.com \ --cc=odin@uged.al \ --cc=peterz@infradead.org \ --cc=rostedt@goodmis.org \ --cc=songmuchun@bytedance.com \ --cc=vincent.guittot@linaro.org \ --cc=vschneid@redhat.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: linkBe 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.