[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202305181547.BxmBDKPa-lkp@intel.com>
Date: Thu, 18 May 2023 16:20:47 +0800
From: kernel test robot <lkp@...el.com>
To: Josh Don <joshdon@...gle.com>, Ingo Molnar <mingo@...hat.com>,
Peter Zijlstra <peterz@...radead.org>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
Tejun Heo <tj@...nel.org>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Steven Rostedt <rostedt@...dmis.org>,
Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>,
Daniel Bristot de Oliveira <bristot@...hat.com>,
Valentin Schneider <vschneid@...hat.com>,
linux-kernel@...r.kernel.org,
Xiangling Kong <xiangling@...gle.com>,
Josh Don <joshdon@...gle.com>
Subject: Re: [PATCH 1/2] sched: don't account throttle time for empty groups
Hi Josh,
kernel test robot noticed the following build errors:
[auto build test ERROR on tip/sched/core]
[also build test ERROR on tip/master tip/auto-latest linus/master v6.4-rc2 next-20230518]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Josh-Don/sched-add-throttled-time-stat-for-throttled-children/20230518-095541
base: tip/sched/core
patch link: https://lore.kernel.org/r/20230518013414.3053254-1-joshdon%40google.com
patch subject: [PATCH 1/2] sched: don't account throttle time for empty groups
config: arm-randconfig-r025-20230517
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project b0fb98227c90adf2536c9ad644a74d5e92961111)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/intel-lab-lkp/linux/commit/9414859be598a05f1bb078f8bf83e132976384ea
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Josh-Don/sched-add-throttled-time-stat-for-throttled-children/20230518-095541
git checkout 9414859be598a05f1bb078f8bf83e132976384ea
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash kernel/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202305181547.BxmBDKPa-lkp@intel.com/
All errors (new ones prefixed by >>):
>> kernel/sched/fair.c:4880:17: error: no member named 'throttled_clock' in 'struct cfs_rq'
if (!cfs_rq->throttled_clock)
~~~~~~ ^
kernel/sched/fair.c:4881:13: error: no member named 'throttled_clock' in 'struct cfs_rq'
cfs_rq->throttled_clock = rq_clock(rq);
~~~~~~ ^
kernel/sched/fair.c:6181:6: warning: no previous prototype for function 'init_cfs_bandwidth' [-Wmissing-prototypes]
void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
^
kernel/sched/fair.c:6181:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
^
static
kernel/sched/fair.c:12617:6: warning: no previous prototype for function 'free_fair_sched_group' [-Wmissing-prototypes]
void free_fair_sched_group(struct task_group *tg) { }
^
kernel/sched/fair.c:12617:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void free_fair_sched_group(struct task_group *tg) { }
^
static
kernel/sched/fair.c:12619:5: warning: no previous prototype for function 'alloc_fair_sched_group' [-Wmissing-prototypes]
int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
^
kernel/sched/fair.c:12619:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
^
static
kernel/sched/fair.c:12624:6: warning: no previous prototype for function 'online_fair_sched_group' [-Wmissing-prototypes]
void online_fair_sched_group(struct task_group *tg) { }
^
kernel/sched/fair.c:12624:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void online_fair_sched_group(struct task_group *tg) { }
^
static
kernel/sched/fair.c:12626:6: warning: no previous prototype for function 'unregister_fair_sched_group' [-Wmissing-prototypes]
void unregister_fair_sched_group(struct task_group *tg) { }
^
kernel/sched/fair.c:12626:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void unregister_fair_sched_group(struct task_group *tg) { }
^
static
5 warnings and 2 errors generated.
vim +4880 kernel/sched/fair.c
4792
4793 /*
4794 * MIGRATION
4795 *
4796 * dequeue
4797 * update_curr()
4798 * update_min_vruntime()
4799 * vruntime -= min_vruntime
4800 *
4801 * enqueue
4802 * update_curr()
4803 * update_min_vruntime()
4804 * vruntime += min_vruntime
4805 *
4806 * this way the vruntime transition between RQs is done when both
4807 * min_vruntime are up-to-date.
4808 *
4809 * WAKEUP (remote)
4810 *
4811 * ->migrate_task_rq_fair() (p->state == TASK_WAKING)
4812 * vruntime -= min_vruntime
4813 *
4814 * enqueue
4815 * update_curr()
4816 * update_min_vruntime()
4817 * vruntime += min_vruntime
4818 *
4819 * this way we don't have the most up-to-date min_vruntime on the originating
4820 * CPU and an up-to-date min_vruntime on the destination CPU.
4821 */
4822
4823 static void
4824 enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int flags)
4825 {
4826 bool renorm = !(flags & ENQUEUE_WAKEUP) || (flags & ENQUEUE_MIGRATED);
4827 bool curr = cfs_rq->curr == se;
4828 struct rq *rq = rq_of(cfs_rq);
4829
4830 /*
4831 * If we're the current task, we must renormalise before calling
4832 * update_curr().
4833 */
4834 if (renorm && curr)
4835 se->vruntime += cfs_rq->min_vruntime;
4836
4837 update_curr(cfs_rq);
4838
4839 /*
4840 * Otherwise, renormalise after, such that we're placed at the current
4841 * moment in time, instead of some random moment in the past. Being
4842 * placed in the past could significantly boost this task to the
4843 * fairness detriment of existing tasks.
4844 */
4845 if (renorm && !curr)
4846 se->vruntime += cfs_rq->min_vruntime;
4847
4848 /*
4849 * When enqueuing a sched_entity, we must:
4850 * - Update loads to have both entity and cfs_rq synced with now.
4851 * - For group_entity, update its runnable_weight to reflect the new
4852 * h_nr_running of its group cfs_rq.
4853 * - For group_entity, update its weight to reflect the new share of
4854 * its group cfs_rq
4855 * - Add its new weight to cfs_rq->load.weight
4856 */
4857 update_load_avg(cfs_rq, se, UPDATE_TG | DO_ATTACH);
4858 se_update_runnable(se);
4859 update_cfs_group(se);
4860 account_entity_enqueue(cfs_rq, se);
4861
4862 if (flags & ENQUEUE_WAKEUP)
4863 place_entity(cfs_rq, se, 0);
4864 /* Entity has migrated, no longer consider this task hot */
4865 if (flags & ENQUEUE_MIGRATED)
4866 se->exec_start = 0;
4867
4868 check_schedstat_required();
4869 update_stats_enqueue_fair(cfs_rq, se, flags);
4870 check_spread(cfs_rq, se);
4871 if (!curr)
4872 __enqueue_entity(cfs_rq, se);
4873 se->on_rq = 1;
4874
4875 if (cfs_rq->nr_running == 1) {
4876 check_enqueue_throttle(cfs_rq);
4877 if (!throttled_hierarchy(cfs_rq)) {
4878 list_add_leaf_cfs_rq(cfs_rq);
4879 } else {
> 4880 if (!cfs_rq->throttled_clock)
4881 cfs_rq->throttled_clock = rq_clock(rq);
4882 }
4883 }
4884 }
4885
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
View attachment "config" of type "text/plain" (140841 bytes)
Powered by blists - more mailing lists