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:
.config.gz
Description: application/gzip