[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202305181921.IsyatAmG-lkp@intel.com>
Date: Thu, 18 May 2023 20:04:36 +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: 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 2/2] sched: add throttled time stat for throttled children
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-2-joshdon%40google.com
patch subject: [PATCH 2/2] sched: add throttled time stat for throttled children
config: mips-decstation_defconfig
compiler: mipsel-linux-gcc (GCC) 12.1.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/557f81b701a0759daea26b798b7c00ac5aa027ae
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 557f81b701a0759daea26b798b7c00ac5aa027ae
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=mips olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash
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/202305181921.IsyatAmG-lkp@intel.com/
All errors (new ones prefixed by >>):
kernel/sched/fair.c: In function 'enqueue_entity':
kernel/sched/fair.c:4880:36: error: 'struct cfs_rq' has no member named 'throttled_clock'
4880 | if (!cfs_rq->throttled_clock)
| ^~
kernel/sched/fair.c:4881:39: error: 'struct cfs_rq' has no member named 'throttled_clock'
4881 | cfs_rq->throttled_clock = rq_clock(rq);
| ^~
>> kernel/sched/fair.c:4882:36: error: 'struct cfs_rq' has no member named 'throttled_clock_self'
4882 | if (!cfs_rq->throttled_clock_self)
| ^~
kernel/sched/fair.c:4883:39: error: 'struct cfs_rq' has no member named 'throttled_clock_self'
4883 | cfs_rq->throttled_clock_self = rq_clock(rq);
| ^~
kernel/sched/fair.c: At top level:
kernel/sched/fair.c:6198:6: warning: no previous prototype for 'init_cfs_bandwidth' [-Wmissing-prototypes]
6198 | void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
| ^~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:12634:6: warning: no previous prototype for 'free_fair_sched_group' [-Wmissing-prototypes]
12634 | void free_fair_sched_group(struct task_group *tg) { }
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:12636:5: warning: no previous prototype for 'alloc_fair_sched_group' [-Wmissing-prototypes]
12636 | int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:12641:6: warning: no previous prototype for 'online_fair_sched_group' [-Wmissing-prototypes]
12641 | void online_fair_sched_group(struct task_group *tg) { }
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/fair.c:12643:6: warning: no previous prototype for 'unregister_fair_sched_group' [-Wmissing-prototypes]
12643 | void unregister_fair_sched_group(struct task_group *tg) { }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +4882 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 if (!cfs_rq->throttled_clock_self)
4883 cfs_rq->throttled_clock_self = rq_clock(rq);
4884 }
4885 }
4886 }
4887
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
View attachment "config" of type "text/plain" (52365 bytes)
Powered by blists - more mailing lists