[cgroup:review-iow 15/17] block/blk-ioweight.c:1051:2: error: implicit declaration of function 'TRACE_IOWG_PATH'

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

 



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


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

  Powered by Linux