tree:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
linux-4.19.y
head: e864f43593ccf9180c61738abdf1c1dde091367d
commit: 742f2319cbd61d9a051f532ad8c83bb33b48f442 [5653/9999] sched/fair: Scale bandwidth
quota and period without losing quota/period ratio precision
config: parisc-randconfig-r023-20201213 (attached as .config)
compiler: hppa-linux-gcc (GCC) 9.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://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.gi...
git remote add linux-stable-rc
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.19.y
git checkout 742f2319cbd61d9a051f532ad8c83bb33b48f442
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=parisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
kernel/sched/fair.c: In function 'sched_cfs_period_timer':
> kernel/sched/fair.c:4905:1: warning: the frame size of 1152 bytes
is larger than 1024 bytes [-Wframe-larger-than=]
4905 | }
| ^
vim +4905 kernel/sched/fair.c
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4853
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4854 static enum
hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer)
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4855 {
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4856 struct cfs_bandwidth
*cfs_b =
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4857 container_of(timer,
struct cfs_bandwidth, period_timer);
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4858 int overrun;
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4859 int idle = 0;
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4860 int count = 0;
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4861
51f2176d74ace4c kernel/sched/fair.c Ben Segall 2014-05-19 4862
raw_spin_lock(&cfs_b->lock);
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4863 for (;;) {
77a4d1a1b9a122c kernel/sched/fair.c Peter Zijlstra 2015-04-15 4864 overrun =
hrtimer_forward_now(timer, cfs_b->period);
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4865 if (!overrun)
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4866 break;
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4867
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4868 if (++count > 3)
{
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4869 u64 new, old =
ktime_to_ns(cfs_b->period);
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4870
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4871 /*
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4872 * Grow period by
a factor of 2 to avoid losing precision.
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4873 * Precision loss
in the quota/period ratio can cause __cfs_schedulable
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4874 * to fail.
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4875 */
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4876 new = old * 2;
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4877 if (new <
max_cfs_quota_period) {
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4878 cfs_b->period
= ns_to_ktime(new);
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4879 cfs_b->quota
*= 2;
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4880
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4881
pr_warn_ratelimited(
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4882
"cfs_period_timer[cpu%d]: period too short, scaling up (new cfs_period_us = %lld,
cfs_quota_us = %lld)\n",
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4883
smp_processor_id(),
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4884 div_u64(new,
NSEC_PER_USEC),
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4885
div_u64(cfs_b->quota, NSEC_PER_USEC));
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4886 } else {
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4887
pr_warn_ratelimited(
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4888
"cfs_period_timer[cpu%d]: period too short, but cannot scale up without losing
precision (cfs_period_us = %lld, cfs_quota_us = %lld)\n",
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4889
smp_processor_id(),
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4890 div_u64(old,
NSEC_PER_USEC),
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4891
div_u64(cfs_b->quota, NSEC_PER_USEC));
742f2319cbd61d9 kernel/sched/fair.c Xuewei Zhang 2019-10-03 4892 }
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4893
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4894 /* reset count so
we don't come right back in here */
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4895 count = 0;
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4896 }
c3edd427d5389ca kernel/sched/fair.c Phil Auld 2019-04-23 4897
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4898 idle =
do_sched_cfs_period_timer(cfs_b, overrun);
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4899 }
4cfafd3082afc70 kernel/sched/fair.c Peter Zijlstra 2015-05-14 4900 if (idle)
4cfafd3082afc70 kernel/sched/fair.c Peter Zijlstra 2015-05-14 4901
cfs_b->period_active = 0;
51f2176d74ace4c kernel/sched/fair.c Ben Segall 2014-05-19 4902
raw_spin_unlock(&cfs_b->lock);
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4903
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4904 return idle ?
HRTIMER_NORESTART : HRTIMER_RESTART;
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 @4905 }
029632fbb7b7c9d kernel/sched_fair.c Peter Zijlstra 2011-10-25 4906
:::::: The code at line 4905 was first introduced by commit
:::::: 029632fbb7b7c9d85063cc9eb470de6c54873df3 sched: Make separate sched*.c translation
units
:::::: TO: Peter Zijlstra <a.p.zijlstra(a)chello.nl>
:::::: CC: Ingo Molnar <mingo(a)elte.hu>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org