* [mmotm:master 172/329] kernel/sched/psi.c:180:2: note: in expansion of macro 'do_div'
@ 2018-07-17 1:13 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2018-07-17 1:13 UTC (permalink / raw)
To: Andrew Morton; +Cc: kbuild-all, Linux Memory Management List, Johannes Weiner
[-- Attachment #1: Type: text/plain, Size: 8275 bytes --]
tree: git://git.cmpxchg.org/linux-mmotm.git master
head: fa5441daae8ad99af4e198bcd4d57cffdd582961
commit: 15c9e6e504f28a6661ba9deedee8d766f2e07c38 [172/329] psi-pressure-stall-information-for-cpu-memory-and-io-fix-fix
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 15c9e6e504f28a6661ba9deedee8d766f2e07c38
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=arm
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago
All warnings (new ones prefixed by >>):
In file included from arch/arm/include/asm/div64.h:127:0,
from include/linux/kernel.h:174,
from include/asm-generic/bug.h:18,
from arch/arm/include/asm/bug.h:60,
from include/linux/bug.h:5,
from include/linux/seq_file.h:7,
from kernel/sched/psi.c:128:
kernel/sched/psi.c: In function 'calc_avgs':
include/asm-generic/div64.h:222:28: warning: comparison of distinct pointer types lacks a cast
(void)(((typeof((n)) *)0) == ((uint64_t *)0)); \
^
>> kernel/sched/psi.c:180:2: note: in expansion of macro 'do_div'
do_div(pct, psi_period);
^~~~~~
In file included from include/linux/string.h:6:0,
from include/linux/seq_file.h:6,
from kernel/sched/psi.c:128:
include/asm-generic/div64.h:235:25: warning: right shift count >= width of type [-Wshift-count-overflow]
} else if (likely(((n) >> 32) == 0)) { \
^
include/linux/compiler.h:76:40: note: in definition of macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^
>> kernel/sched/psi.c:180:2: note: in expansion of macro 'do_div'
do_div(pct, psi_period);
^~~~~~
In file included from arch/arm/include/asm/div64.h:127:0,
from include/linux/kernel.h:174,
from include/asm-generic/bug.h:18,
from arch/arm/include/asm/bug.h:60,
from include/linux/bug.h:5,
from include/linux/seq_file.h:7,
from kernel/sched/psi.c:128:
include/asm-generic/div64.h:239:22: error: passing argument 1 of '__div64_32' from incompatible pointer type [-Werror=incompatible-pointer-types]
__rem = __div64_32(&(n), __base); \
^
>> kernel/sched/psi.c:180:2: note: in expansion of macro 'do_div'
do_div(pct, psi_period);
^~~~~~
In file included from include/linux/kernel.h:174:0,
from include/asm-generic/bug.h:18,
from arch/arm/include/asm/bug.h:60,
from include/linux/bug.h:5,
from include/linux/seq_file.h:7,
from kernel/sched/psi.c:128:
arch/arm/include/asm/div64.h:33:24: note: expected 'uint64_t * {aka long long unsigned int *}' but argument is of type 'long unsigned int *'
static inline uint32_t __div64_32(uint64_t *n, uint32_t base)
^~~~~~~~~~
cc1: some warnings being treated as errors
git remote add mmotm git://git.cmpxchg.org/linux-mmotm.git
git remote update mmotm
git checkout 15c9e6e504f28a6661ba9deedee8d766f2e07c38
vim +/do_div +180 kernel/sched/psi.c
60ad478b Johannes Weiner 2018-07-14 @128 #include <linux/seq_file.h>
60ad478b Johannes Weiner 2018-07-14 129 #include <linux/proc_fs.h>
60ad478b Johannes Weiner 2018-07-14 130 #include <linux/cgroup.h>
60ad478b Johannes Weiner 2018-07-14 131 #include <linux/module.h>
60ad478b Johannes Weiner 2018-07-14 132 #include <linux/sched.h>
60ad478b Johannes Weiner 2018-07-14 133 #include <linux/psi.h>
60ad478b Johannes Weiner 2018-07-14 134 #include "sched.h"
60ad478b Johannes Weiner 2018-07-14 135
60ad478b Johannes Weiner 2018-07-14 136 static int psi_bug __read_mostly;
60ad478b Johannes Weiner 2018-07-14 137
60ad478b Johannes Weiner 2018-07-14 138 bool psi_disabled __read_mostly;
60ad478b Johannes Weiner 2018-07-14 139 core_param(psi_disabled, psi_disabled, bool, 0644);
60ad478b Johannes Weiner 2018-07-14 140
60ad478b Johannes Weiner 2018-07-14 141 /* Running averages - we need to be higher-res than loadavg */
60ad478b Johannes Weiner 2018-07-14 142 #define PSI_FREQ (2*HZ+1) /* 2 sec intervals */
60ad478b Johannes Weiner 2018-07-14 143 #define EXP_10s 1677 /* 1/exp(2s/10s) as fixed-point */
60ad478b Johannes Weiner 2018-07-14 144 #define EXP_60s 1981 /* 1/exp(2s/60s) */
60ad478b Johannes Weiner 2018-07-14 145 #define EXP_300s 2034 /* 1/exp(2s/300s) */
60ad478b Johannes Weiner 2018-07-14 146
60ad478b Johannes Weiner 2018-07-14 147 /* Sampling frequency in nanoseconds */
60ad478b Johannes Weiner 2018-07-14 148 static u64 psi_period __read_mostly;
60ad478b Johannes Weiner 2018-07-14 149
60ad478b Johannes Weiner 2018-07-14 150 /* System-level pressure and stall tracking */
60ad478b Johannes Weiner 2018-07-14 151 static DEFINE_PER_CPU(struct psi_group_cpu, system_group_cpus);
60ad478b Johannes Weiner 2018-07-14 152 static struct psi_group psi_system = {
60ad478b Johannes Weiner 2018-07-14 153 .cpus = &system_group_cpus,
60ad478b Johannes Weiner 2018-07-14 154 };
60ad478b Johannes Weiner 2018-07-14 155
60ad478b Johannes Weiner 2018-07-14 156 static void psi_clock(struct work_struct *work);
60ad478b Johannes Weiner 2018-07-14 157
60ad478b Johannes Weiner 2018-07-14 158 static void psi_group_init(struct psi_group *group)
60ad478b Johannes Weiner 2018-07-14 159 {
60ad478b Johannes Weiner 2018-07-14 160 group->period_expires = jiffies + PSI_FREQ;
60ad478b Johannes Weiner 2018-07-14 161 INIT_DELAYED_WORK(&group->clock_work, psi_clock);
60ad478b Johannes Weiner 2018-07-14 162 mutex_init(&group->stat_lock);
60ad478b Johannes Weiner 2018-07-14 163 }
60ad478b Johannes Weiner 2018-07-14 164
60ad478b Johannes Weiner 2018-07-14 165 void __init psi_init(void)
60ad478b Johannes Weiner 2018-07-14 166 {
60ad478b Johannes Weiner 2018-07-14 167 if (psi_disabled)
60ad478b Johannes Weiner 2018-07-14 168 return;
60ad478b Johannes Weiner 2018-07-14 169
60ad478b Johannes Weiner 2018-07-14 170 psi_period = jiffies_to_nsecs(PSI_FREQ);
60ad478b Johannes Weiner 2018-07-14 171 psi_group_init(&psi_system);
60ad478b Johannes Weiner 2018-07-14 172 }
60ad478b Johannes Weiner 2018-07-14 173
60ad478b Johannes Weiner 2018-07-14 174 static void calc_avgs(unsigned long avg[3], u64 time, int missed_periods)
60ad478b Johannes Weiner 2018-07-14 175 {
60ad478b Johannes Weiner 2018-07-14 176 unsigned long pct;
60ad478b Johannes Weiner 2018-07-14 177
60ad478b Johannes Weiner 2018-07-14 178 /* Sample the most recent active period */
15c9e6e5 Andrew Morton 2018-07-14 179 pct = time * 100;
15c9e6e5 Andrew Morton 2018-07-14 @180 do_div(pct, psi_period);
60ad478b Johannes Weiner 2018-07-14 181 pct *= FIXED_1;
60ad478b Johannes Weiner 2018-07-14 182 avg[0] = calc_load(avg[0], EXP_10s, pct);
60ad478b Johannes Weiner 2018-07-14 183 avg[1] = calc_load(avg[1], EXP_60s, pct);
60ad478b Johannes Weiner 2018-07-14 184 avg[2] = calc_load(avg[2], EXP_300s, pct);
60ad478b Johannes Weiner 2018-07-14 185
60ad478b Johannes Weiner 2018-07-14 186 /* Fill in zeroes for periods of no activity */
60ad478b Johannes Weiner 2018-07-14 187 if (missed_periods) {
60ad478b Johannes Weiner 2018-07-14 188 avg[0] = calc_load_n(avg[0], EXP_10s, 0, missed_periods);
60ad478b Johannes Weiner 2018-07-14 189 avg[1] = calc_load_n(avg[1], EXP_60s, 0, missed_periods);
60ad478b Johannes Weiner 2018-07-14 190 avg[2] = calc_load_n(avg[2], EXP_300s, 0, missed_periods);
60ad478b Johannes Weiner 2018-07-14 191 }
60ad478b Johannes Weiner 2018-07-14 192 }
60ad478b Johannes Weiner 2018-07-14 193
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 66085 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-07-17 1:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-17 1:13 [mmotm:master 172/329] kernel/sched/psi.c:180:2: note: in expansion of macro 'do_div' kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).