Re: [PATCH 01/13] blk: make blk-rq-qos support pluggable and modular policy

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

 



Hi Wang,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tj-cgroup/for-next]
[also build test WARNING on v5.16]
[cannot apply to axboe-block/for-next next-20220112]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Wang-Jianchao/blk-make-blk-rq-qos-policies-pluggable-and-modular/20220110-171347
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
config: arm-randconfig-r006-20220112 (https://download.01.org/0day-ci/archive/20220113/202201130903.7ZvBIOs4-lkp@xxxxxxxxx/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 244dd2913a43a200f5a6544d424cdc37b771028b)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://github.com/0day-ci/linux/commit/8bef9fba59d8d47ecaebbeff3e62ee550d89b017
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Wang-Jianchao/blk-make-blk-rq-qos-policies-pluggable-and-modular/20220110-171347
        git checkout 8bef9fba59d8d47ecaebbeff3e62ee550d89b017
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

   block/blk-iocost.c:1244:6: warning: variable 'last_period' set but not used [-Wunused-but-set-variable]
           u64 last_period, cur_period;
               ^
>> block/blk-iocost.c:3348:7: warning: variable 'ioc' is uninitialized when used here [-Wuninitialized]
           if (!ioc) {
                ^~~
   block/blk-iocost.c:3337:17: note: initialize the variable 'ioc' to silence this warning
           struct ioc *ioc;
                          ^
                           = NULL
   2 warnings generated.


vim +/ioc +3348 block/blk-iocost.c

7caa47151ab2e64 Tejun Heo         2019-08-28  3331  
7caa47151ab2e64 Tejun Heo         2019-08-28  3332  static ssize_t ioc_cost_model_write(struct kernfs_open_file *of, char *input,
7caa47151ab2e64 Tejun Heo         2019-08-28  3333  				    size_t nbytes, loff_t off)
7caa47151ab2e64 Tejun Heo         2019-08-28  3334  {
22ae8ce8b89241c Christoph Hellwig 2020-11-26  3335  	struct block_device *bdev;
8bef9fba59d8d47 Wang Jianchao     2022-01-10  3336  	struct rq_qos *rqos;
7caa47151ab2e64 Tejun Heo         2019-08-28  3337  	struct ioc *ioc;
7caa47151ab2e64 Tejun Heo         2019-08-28  3338  	u64 u[NR_I_LCOEFS];
7caa47151ab2e64 Tejun Heo         2019-08-28  3339  	bool user;
7caa47151ab2e64 Tejun Heo         2019-08-28  3340  	char *p;
7caa47151ab2e64 Tejun Heo         2019-08-28  3341  	int ret;
7caa47151ab2e64 Tejun Heo         2019-08-28  3342  
22ae8ce8b89241c Christoph Hellwig 2020-11-26  3343  	bdev = blkcg_conf_open_bdev(&input);
22ae8ce8b89241c Christoph Hellwig 2020-11-26  3344  	if (IS_ERR(bdev))
22ae8ce8b89241c Christoph Hellwig 2020-11-26  3345  		return PTR_ERR(bdev);
7caa47151ab2e64 Tejun Heo         2019-08-28  3346  
8bef9fba59d8d47 Wang Jianchao     2022-01-10  3347  	rqos = rq_qos_get(bdev_get_queue(bdev), RQ_QOS_COST);
7caa47151ab2e64 Tejun Heo         2019-08-28 @3348  	if (!ioc) {
ed6cddefdfd361a Pavel Begunkov    2021-10-14  3349  		ret = blk_iocost_init(bdev_get_queue(bdev));
7caa47151ab2e64 Tejun Heo         2019-08-28  3350  		if (ret)
7caa47151ab2e64 Tejun Heo         2019-08-28  3351  			goto err;
8bef9fba59d8d47 Wang Jianchao     2022-01-10  3352  		rqos = rq_qos_get(bdev_get_queue(bdev), RQ_QOS_COST);
7caa47151ab2e64 Tejun Heo         2019-08-28  3353  	}
7caa47151ab2e64 Tejun Heo         2019-08-28  3354  
8bef9fba59d8d47 Wang Jianchao     2022-01-10  3355  	ioc = rqos_to_ioc(rqos);
7caa47151ab2e64 Tejun Heo         2019-08-28  3356  	spin_lock_irq(&ioc->lock);
7caa47151ab2e64 Tejun Heo         2019-08-28  3357  	memcpy(u, ioc->params.i_lcoefs, sizeof(u));
7caa47151ab2e64 Tejun Heo         2019-08-28  3358  	user = ioc->user_cost_model;
7caa47151ab2e64 Tejun Heo         2019-08-28  3359  	spin_unlock_irq(&ioc->lock);
7caa47151ab2e64 Tejun Heo         2019-08-28  3360  
7caa47151ab2e64 Tejun Heo         2019-08-28  3361  	while ((p = strsep(&input, " \t\n"))) {
7caa47151ab2e64 Tejun Heo         2019-08-28  3362  		substring_t args[MAX_OPT_ARGS];
7caa47151ab2e64 Tejun Heo         2019-08-28  3363  		char buf[32];
7caa47151ab2e64 Tejun Heo         2019-08-28  3364  		int tok;
7caa47151ab2e64 Tejun Heo         2019-08-28  3365  		u64 v;
7caa47151ab2e64 Tejun Heo         2019-08-28  3366  
7caa47151ab2e64 Tejun Heo         2019-08-28  3367  		if (!*p)
7caa47151ab2e64 Tejun Heo         2019-08-28  3368  			continue;
7caa47151ab2e64 Tejun Heo         2019-08-28  3369  
7caa47151ab2e64 Tejun Heo         2019-08-28  3370  		switch (match_token(p, cost_ctrl_tokens, args)) {
7caa47151ab2e64 Tejun Heo         2019-08-28  3371  		case COST_CTRL:
7caa47151ab2e64 Tejun Heo         2019-08-28  3372  			match_strlcpy(buf, &args[0], sizeof(buf));
7caa47151ab2e64 Tejun Heo         2019-08-28  3373  			if (!strcmp(buf, "auto"))
7caa47151ab2e64 Tejun Heo         2019-08-28  3374  				user = false;
7caa47151ab2e64 Tejun Heo         2019-08-28  3375  			else if (!strcmp(buf, "user"))
7caa47151ab2e64 Tejun Heo         2019-08-28  3376  				user = true;
7caa47151ab2e64 Tejun Heo         2019-08-28  3377  			else
7caa47151ab2e64 Tejun Heo         2019-08-28  3378  				goto einval;
7caa47151ab2e64 Tejun Heo         2019-08-28  3379  			continue;
7caa47151ab2e64 Tejun Heo         2019-08-28  3380  		case COST_MODEL:
7caa47151ab2e64 Tejun Heo         2019-08-28  3381  			match_strlcpy(buf, &args[0], sizeof(buf));
7caa47151ab2e64 Tejun Heo         2019-08-28  3382  			if (strcmp(buf, "linear"))
7caa47151ab2e64 Tejun Heo         2019-08-28  3383  				goto einval;
7caa47151ab2e64 Tejun Heo         2019-08-28  3384  			continue;
7caa47151ab2e64 Tejun Heo         2019-08-28  3385  		}
7caa47151ab2e64 Tejun Heo         2019-08-28  3386  
7caa47151ab2e64 Tejun Heo         2019-08-28  3387  		tok = match_token(p, i_lcoef_tokens, args);
7caa47151ab2e64 Tejun Heo         2019-08-28  3388  		if (tok == NR_I_LCOEFS)
7caa47151ab2e64 Tejun Heo         2019-08-28  3389  			goto einval;
7caa47151ab2e64 Tejun Heo         2019-08-28  3390  		if (match_u64(&args[0], &v))
7caa47151ab2e64 Tejun Heo         2019-08-28  3391  			goto einval;
7caa47151ab2e64 Tejun Heo         2019-08-28  3392  		u[tok] = v;
7caa47151ab2e64 Tejun Heo         2019-08-28  3393  		user = true;
7caa47151ab2e64 Tejun Heo         2019-08-28  3394  	}
7caa47151ab2e64 Tejun Heo         2019-08-28  3395  
7caa47151ab2e64 Tejun Heo         2019-08-28  3396  	spin_lock_irq(&ioc->lock);
7caa47151ab2e64 Tejun Heo         2019-08-28  3397  	if (user) {
7caa47151ab2e64 Tejun Heo         2019-08-28  3398  		memcpy(ioc->params.i_lcoefs, u, sizeof(u));
7caa47151ab2e64 Tejun Heo         2019-08-28  3399  		ioc->user_cost_model = true;
7caa47151ab2e64 Tejun Heo         2019-08-28  3400  	} else {
7caa47151ab2e64 Tejun Heo         2019-08-28  3401  		ioc->user_cost_model = false;
7caa47151ab2e64 Tejun Heo         2019-08-28  3402  	}
7caa47151ab2e64 Tejun Heo         2019-08-28  3403  	ioc_refresh_params(ioc, true);
7caa47151ab2e64 Tejun Heo         2019-08-28  3404  	spin_unlock_irq(&ioc->lock);
7caa47151ab2e64 Tejun Heo         2019-08-28  3405  
8bef9fba59d8d47 Wang Jianchao     2022-01-10  3406  	rq_qos_put(rqos);
22ae8ce8b89241c Christoph Hellwig 2020-11-26  3407  	blkdev_put_no_open(bdev);
7caa47151ab2e64 Tejun Heo         2019-08-28  3408  	return nbytes;
7caa47151ab2e64 Tejun Heo         2019-08-28  3409  
7caa47151ab2e64 Tejun Heo         2019-08-28  3410  einval:
7caa47151ab2e64 Tejun Heo         2019-08-28  3411  	ret = -EINVAL;
8bef9fba59d8d47 Wang Jianchao     2022-01-10  3412  	rq_qos_put(rqos);
7caa47151ab2e64 Tejun Heo         2019-08-28  3413  err:
22ae8ce8b89241c Christoph Hellwig 2020-11-26  3414  	blkdev_put_no_open(bdev);
7caa47151ab2e64 Tejun Heo         2019-08-28  3415  	return ret;
7caa47151ab2e64 Tejun Heo         2019-08-28  3416  }
7caa47151ab2e64 Tejun Heo         2019-08-28  3417  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux