[mmotm:master 172/329] kernel/sched/psi.c:180:2: note: in expansion of macro 'do_div'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux