tree: https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git review-iow head: e2209ac1daf46cd980f6b912c30a910a78f7da24 commit: 3ddd9fc7fba6e817f95c3baa7731826a3e6cbd2c [15/17] blkcg: implement blk-ioweight config: m68k-allyesconfig (attached as .config) compiler: m68k-linux-gcc (GCC) 7.4.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 3ddd9fc7fba6e817f95c3baa7731826a3e6cbd2c # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=m68k If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): block/blk-ioweight.c:263:24: warning: integer overflow in expression [-Woverflow] AUTOP_CYCLE_NSEC = 10 * NSEC_PER_SEC, ^ block/blk-ioweight.c:557:4: warning: this decimal constant is unsigned only in ISO C90 [I_LCOEF_RBPS] = 2338259289, ^ block/blk-ioweight.c: In function 'iowg_activate': >> block/blk-ioweight.c:1051:2: error: implicit declaration of function 'TRACE_IOWG_PATH' [-Werror=implicit-function-declaration] TRACE_IOWG_PATH(iowg_activate, iowg, now, ^~~~~~~~~~~~~~~ block/blk-ioweight.c: In function 'iow_timer_fn': >> block/blk-ioweight.c:1408:21: error: 'inuse_takeback' undeclared (first use in this function); did you mean 'inode_trylock'? TRACE_IOWG_PATH(inuse_takeback, iowg, &now, ^~~~~~~~~~~~~~ inode_trylock block/blk-ioweight.c:1408:21: note: each undeclared identifier is reported only once for each function it appears in >> block/blk-ioweight.c:1449:20: error: 'inuse_giveaway' undeclared (first use in this function); did you mean 'inuse_takeback'? TRACE_IOWG_PATH(inuse_giveaway, iowg, &now, ^~~~~~~~~~~~~~ inuse_takeback block/blk-ioweight.c: In function 'iow_rqos_throttle': >> block/blk-ioweight.c:1626:19: error: 'inuse_reset' undeclared (first use in this function); did you mean 'xas_reset'? TRACE_IOWG_PATH(inuse_reset, iowg, &now, ^~~~~~~~~~~ xas_reset At top level: block/blk-ioweight.c:599:20: warning: 'iow_name' defined but not used [-Wunused-function] static const char *iow_name(struct iow *iow) ^~~~~~~~ cc1: some warnings being treated as errors vim +/TRACE_IOWG_PATH +1051 block/blk-ioweight.c 987 988 static bool iowg_activate(struct iow_gq *iowg, struct iow_now *now) 989 { 990 struct iow *iow = iowg->iow; 991 u64 last_period, cur_period, max_period_delta; 992 u64 vtime, vmargin, vmin; 993 int i; 994 995 /* 996 * If seem to be already active, just update the stamp to tell the 997 * timer that we're still active. We don't mind occassional races. 998 */ 999 if (!list_empty(&iowg->active_list)) { 1000 iow_now(iow, now); 1001 cur_period = atomic64_read(&iow->cur_period); 1002 if (atomic64_read(&iowg->active_period) != cur_period) 1003 atomic64_set(&iowg->active_period, cur_period); 1004 return true; 1005 } 1006 1007 /* racy check on internal node IOs, treat as root level IOs */ 1008 if (iowg->child_active_sum) 1009 return false; 1010 1011 spin_lock_irq(&iow->lock); 1012 1013 iow_now(iow, now); 1014 1015 /* update period */ 1016 cur_period = atomic64_read(&iow->cur_period); 1017 last_period = atomic64_read(&iowg->active_period); 1018 atomic64_set(&iowg->active_period, cur_period); 1019 1020 /* already activated or breaking leaf-only constraint? */ 1021 for (i = iowg->level; i > 0; i--) 1022 if (!list_empty(&iowg->active_list)) 1023 goto fail_unlock; 1024 if (iowg->child_active_sum) 1025 goto fail_unlock; 1026 1027 /* 1028 * vtime may wrap when vrate is raised substantially due to 1029 * underestimated IO costs. Look at the period and ignore its 1030 * vtime if the iowg has been idle for too long. Also, cap the 1031 * budget it can start with to the margin. 1032 */ 1033 max_period_delta = DIV64_U64_ROUND_UP(VTIME_VALID_DUR, iow->period_us); 1034 vtime = atomic64_read(&iowg->vtime); 1035 vmargin = iow->margin_us * now->vrate; 1036 vmin = now->vnow - vmargin; 1037 1038 if (last_period + max_period_delta < cur_period || 1039 time_before64(vtime, vmin)) { 1040 atomic64_add(vmin - vtime, &iowg->vtime); 1041 atomic64_add(vmin - vtime, &iowg->done_vtime); 1042 vtime = vmin; 1043 } 1044 1045 /* activate, propagate weight and start period timer if not running */ 1046 iowg->hweight_gen = atomic_read(&iow->hweight_gen); 1047 list_add(&iowg->active_list, &iow->active_iowgs); 1048 propagate_active_weight(iowg, iowg->weight, 1049 iowg->last_inuse ?: iowg->weight); 1050 > 1051 TRACE_IOWG_PATH(iowg_activate, iowg, now, 1052 last_period, cur_period, vtime); 1053 1054 iowg->last_vtime = vtime; 1055 1056 if (iow->running == IOW_IDLE) { 1057 iow->running = IOW_RUNNING; 1058 iow_start_period(iow, now); 1059 } 1060 1061 spin_unlock_irq(&iow->lock); 1062 return true; 1063 1064 fail_unlock: 1065 spin_unlock_irq(&iow->lock); 1066 return false; 1067 } 1068 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip