From: kernel test robot <lkp@intel.com>
To: Uday Shankar <ushankar@purestorage.com>,
Jens Axboe <axboe@kernel.dk>, Alasdair Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@kernel.org>
Cc: linux-block@vger.kernel.org, dm-devel@redhat.com,
llvm@lists.linux.dev, Uday Shankar <ushankar@purestorage.com>,
oe-kbuild-all@lists.linux.dev
Subject: Re: [dm-devel] [PATCH] blk-mq: enforce op-specific segment limits in blk_insert_cloned_request
Date: Thu, 16 Feb 2023 21:06:49 +0800 [thread overview]
Message-ID: <202302162040.FaI25ul2-lkp@intel.com> (raw)
In-Reply-To: <20230215201507.494152-1-ushankar@purestorage.com>
Hi Uday,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on 6bea9ac7c6481c09eb2b61d7cd844fc64a526e3e]
url: https://github.com/intel-lab-lkp/linux/commits/Uday-Shankar/blk-mq-enforce-op-specific-segment-limits-in-blk_insert_cloned_request/20230216-041718
base: 6bea9ac7c6481c09eb2b61d7cd844fc64a526e3e
patch link: https://lore.kernel.org/r/20230215201507.494152-1-ushankar%40purestorage.com
patch subject: [PATCH] blk-mq: enforce op-specific segment limits in blk_insert_cloned_request
config: i386-randconfig-a004-20230213 (https://download.01.org/0day-ci/archive/20230216/202302162040.FaI25ul2-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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
# https://github.com/intel-lab-lkp/linux/commit/2cd958b09698bedea1a5a5f6298f0d25ec522bf9
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Uday-Shankar/blk-mq-enforce-op-specific-segment-limits-in-blk_insert_cloned_request/20230216-041718
git checkout 2cd958b09698bedea1a5a5f6298f0d25ec522bf9
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202302162040.FaI25ul2-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> block/blk-mq.c:3032:36: warning: format specifies type 'unsigned short' but the argument has type 'unsigned int' [-Wformat]
__func__, rq->nr_phys_segments, max_segments);
^~~~~~~~~~~~
include/linux/printk.h:457:60: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:429:19: note: expanded from macro 'printk_index_wrap'
_p_func(_fmt, ##__VA_ARGS__); \
~~~~ ^~~~~~~~~~~
1 warning generated.
vim +3032 block/blk-mq.c
2993
2994 #ifdef CONFIG_BLK_MQ_STACKING
2995 /**
2996 * blk_insert_cloned_request - Helper for stacking drivers to submit a request
2997 * @rq: the request being queued
2998 */
2999 blk_status_t blk_insert_cloned_request(struct request *rq)
3000 {
3001 struct request_queue *q = rq->q;
3002 unsigned int max_sectors = blk_queue_get_max_sectors(q, req_op(rq));
3003 unsigned int max_segments = blk_queue_get_max_segments(q, req_op(rq));
3004 blk_status_t ret;
3005
3006 if (blk_rq_sectors(rq) > max_sectors) {
3007 /*
3008 * SCSI device does not have a good way to return if
3009 * Write Same/Zero is actually supported. If a device rejects
3010 * a non-read/write command (discard, write same,etc.) the
3011 * low-level device driver will set the relevant queue limit to
3012 * 0 to prevent blk-lib from issuing more of the offending
3013 * operations. Commands queued prior to the queue limit being
3014 * reset need to be completed with BLK_STS_NOTSUPP to avoid I/O
3015 * errors being propagated to upper layers.
3016 */
3017 if (max_sectors == 0)
3018 return BLK_STS_NOTSUPP;
3019
3020 printk(KERN_ERR "%s: over max size limit. (%u > %u)\n",
3021 __func__, blk_rq_sectors(rq), max_sectors);
3022 return BLK_STS_IOERR;
3023 }
3024
3025 /*
3026 * The queue settings related to segment counting may differ from the
3027 * original queue.
3028 */
3029 rq->nr_phys_segments = blk_recalc_rq_segments(rq);
3030 if (rq->nr_phys_segments > max_segments) {
3031 printk(KERN_ERR "%s: over max segments limit. (%hu > %hu)\n",
> 3032 __func__, rq->nr_phys_segments, max_segments);
3033 return BLK_STS_IOERR;
3034 }
3035
3036 if (q->disk && should_fail_request(q->disk->part0, blk_rq_bytes(rq)))
3037 return BLK_STS_IOERR;
3038
3039 if (blk_crypto_insert_cloned_request(rq))
3040 return BLK_STS_IOERR;
3041
3042 blk_account_io_start(rq);
3043
3044 /*
3045 * Since we have a scheduler attached on the top device,
3046 * bypass a potential scheduler on the bottom device for
3047 * insert.
3048 */
3049 blk_mq_run_dispatch_ops(q,
3050 ret = blk_mq_request_issue_directly(rq, true));
3051 if (ret)
3052 blk_account_io_done(rq, ktime_get_ns());
3053 return ret;
3054 }
3055 EXPORT_SYMBOL_GPL(blk_insert_cloned_request);
3056
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Uday Shankar <ushankar@purestorage.com>,
Jens Axboe <axboe@kernel.dk>, Alasdair Kergon <agk@redhat.com>,
Mike Snitzer <snitzer@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
linux-block@vger.kernel.org, dm-devel@redhat.com,
Uday Shankar <ushankar@purestorage.com>
Subject: Re: [PATCH] blk-mq: enforce op-specific segment limits in blk_insert_cloned_request
Date: Thu, 16 Feb 2023 21:06:49 +0800 [thread overview]
Message-ID: <202302162040.FaI25ul2-lkp@intel.com> (raw)
In-Reply-To: <20230215201507.494152-1-ushankar@purestorage.com>
Hi Uday,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on 6bea9ac7c6481c09eb2b61d7cd844fc64a526e3e]
url: https://github.com/intel-lab-lkp/linux/commits/Uday-Shankar/blk-mq-enforce-op-specific-segment-limits-in-blk_insert_cloned_request/20230216-041718
base: 6bea9ac7c6481c09eb2b61d7cd844fc64a526e3e
patch link: https://lore.kernel.org/r/20230215201507.494152-1-ushankar%40purestorage.com
patch subject: [PATCH] blk-mq: enforce op-specific segment limits in blk_insert_cloned_request
config: i386-randconfig-a004-20230213 (https://download.01.org/0day-ci/archive/20230216/202302162040.FaI25ul2-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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
# https://github.com/intel-lab-lkp/linux/commit/2cd958b09698bedea1a5a5f6298f0d25ec522bf9
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Uday-Shankar/blk-mq-enforce-op-specific-segment-limits-in-blk_insert_cloned_request/20230216-041718
git checkout 2cd958b09698bedea1a5a5f6298f0d25ec522bf9
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202302162040.FaI25ul2-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> block/blk-mq.c:3032:36: warning: format specifies type 'unsigned short' but the argument has type 'unsigned int' [-Wformat]
__func__, rq->nr_phys_segments, max_segments);
^~~~~~~~~~~~
include/linux/printk.h:457:60: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/printk.h:429:19: note: expanded from macro 'printk_index_wrap'
_p_func(_fmt, ##__VA_ARGS__); \
~~~~ ^~~~~~~~~~~
1 warning generated.
vim +3032 block/blk-mq.c
2993
2994 #ifdef CONFIG_BLK_MQ_STACKING
2995 /**
2996 * blk_insert_cloned_request - Helper for stacking drivers to submit a request
2997 * @rq: the request being queued
2998 */
2999 blk_status_t blk_insert_cloned_request(struct request *rq)
3000 {
3001 struct request_queue *q = rq->q;
3002 unsigned int max_sectors = blk_queue_get_max_sectors(q, req_op(rq));
3003 unsigned int max_segments = blk_queue_get_max_segments(q, req_op(rq));
3004 blk_status_t ret;
3005
3006 if (blk_rq_sectors(rq) > max_sectors) {
3007 /*
3008 * SCSI device does not have a good way to return if
3009 * Write Same/Zero is actually supported. If a device rejects
3010 * a non-read/write command (discard, write same,etc.) the
3011 * low-level device driver will set the relevant queue limit to
3012 * 0 to prevent blk-lib from issuing more of the offending
3013 * operations. Commands queued prior to the queue limit being
3014 * reset need to be completed with BLK_STS_NOTSUPP to avoid I/O
3015 * errors being propagated to upper layers.
3016 */
3017 if (max_sectors == 0)
3018 return BLK_STS_NOTSUPP;
3019
3020 printk(KERN_ERR "%s: over max size limit. (%u > %u)\n",
3021 __func__, blk_rq_sectors(rq), max_sectors);
3022 return BLK_STS_IOERR;
3023 }
3024
3025 /*
3026 * The queue settings related to segment counting may differ from the
3027 * original queue.
3028 */
3029 rq->nr_phys_segments = blk_recalc_rq_segments(rq);
3030 if (rq->nr_phys_segments > max_segments) {
3031 printk(KERN_ERR "%s: over max segments limit. (%hu > %hu)\n",
> 3032 __func__, rq->nr_phys_segments, max_segments);
3033 return BLK_STS_IOERR;
3034 }
3035
3036 if (q->disk && should_fail_request(q->disk->part0, blk_rq_bytes(rq)))
3037 return BLK_STS_IOERR;
3038
3039 if (blk_crypto_insert_cloned_request(rq))
3040 return BLK_STS_IOERR;
3041
3042 blk_account_io_start(rq);
3043
3044 /*
3045 * Since we have a scheduler attached on the top device,
3046 * bypass a potential scheduler on the bottom device for
3047 * insert.
3048 */
3049 blk_mq_run_dispatch_ops(q,
3050 ret = blk_mq_request_issue_directly(rq, true));
3051 if (ret)
3052 blk_account_io_done(rq, ktime_get_ns());
3053 return ret;
3054 }
3055 EXPORT_SYMBOL_GPL(blk_insert_cloned_request);
3056
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next prev parent reply other threads:[~2023-02-16 13:09 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-15 20:15 [dm-devel] [PATCH] blk-mq: enforce op-specific segment limits in blk_insert_cloned_request Uday Shankar
2023-02-15 20:15 ` Uday Shankar
2023-02-16 6:09 ` [dm-devel] " Christoph Hellwig
2023-02-16 6:09 ` Christoph Hellwig
2023-02-16 19:27 ` [dm-devel] " Uday Shankar
2023-02-16 19:27 ` Uday Shankar
2023-02-17 0:13 ` [dm-devel] " Mike Snitzer
2023-02-17 0:13 ` Mike Snitzer
2023-02-17 16:16 ` [dm-devel] [PATCH] " Christoph Hellwig
2023-02-17 16:16 ` Christoph Hellwig
2023-02-17 16:43 ` [dm-devel] " Mike Snitzer
2023-02-17 16:43 ` Mike Snitzer
2023-02-17 21:41 ` [dm-devel] " Uday Shankar
2023-02-17 21:41 ` Uday Shankar
2023-02-16 13:06 ` kernel test robot [this message]
2023-02-16 13:06 ` [PATCH] " kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202302162040.FaI25ul2-lkp@intel.com \
--to=lkp@intel.com \
--cc=agk@redhat.com \
--cc=axboe@kernel.dk \
--cc=dm-devel@redhat.com \
--cc=linux-block@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=snitzer@kernel.org \
--cc=ushankar@purestorage.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.