From: kernel test robot <lkp@intel.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH v18 05/12] blk-zoned: Add an argument to blk_zone_plug_bio()
Date: Tue, 17 Jun 2025 20:49:09 +0800 [thread overview]
Message-ID: <202506172033.GPdkXO1C-lkp@intel.com> (raw)
In-Reply-To: <20250616223312.1607638-6-bvanassche@acm.org>
Hi Bart,
kernel test robot noticed the following build errors:
[auto build test ERROR on axboe-block/for-next]
[also build test ERROR on jejb-scsi/for-next mkp-scsi/for-next linus/master v6.16-rc2 next-20250617]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Bart-Van-Assche/block-Support-block-drivers-that-preserve-the-order-of-write-requests/20250617-063905
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
patch link: https://lore.kernel.org/r/20250616223312.1607638-6-bvanassche%40acm.org
patch subject: [PATCH v18 05/12] blk-zoned: Add an argument to blk_zone_plug_bio()
config: um-allnoconfig (https://download.01.org/0day-ci/archive/20250617/202506172033.GPdkXO1C-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250617/202506172033.GPdkXO1C-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202506172033.GPdkXO1C-lkp@intel.com/
All errors (new ones prefixed by >>):
>> block/blk-mq.c:3187:63: error: too many arguments to function call, expected 2, have 3
3187 | if (blk_queue_is_zoned(q) && blk_zone_plug_bio(bio, nr_segs, &from_cpu))
| ~~~~~~~~~~~~~~~~~ ^~~~~~~~~
include/linux/blkdev.h:874:20: note: 'blk_zone_plug_bio' declared here
874 | static inline bool blk_zone_plug_bio(struct bio *bio, unsigned int nr_segs)
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
vim +3187 block/blk-mq.c
3122
3123 /**
3124 * blk_mq_submit_bio - Create and send a request to block device.
3125 * @bio: Bio pointer.
3126 *
3127 * Builds up a request structure from @q and @bio and send to the device. The
3128 * request may not be queued directly to hardware if:
3129 * * This request can be merged with another one
3130 * * We want to place request at plug queue for possible future merging
3131 * * There is an IO scheduler active at this queue
3132 *
3133 * It will not queue the request if there is an error with the bio, or at the
3134 * request creation.
3135 */
3136 void blk_mq_submit_bio(struct bio *bio)
3137 {
3138 struct request_queue *q = bdev_get_queue(bio->bi_bdev);
3139 struct blk_plug *plug = current->plug;
3140 const int is_sync = op_is_sync(bio->bi_opf);
3141 struct blk_mq_hw_ctx *hctx;
3142 unsigned int nr_segs;
3143 struct request *rq;
3144 int from_cpu = -1;
3145 blk_status_t ret;
3146
3147 /*
3148 * A BIO that was released from a zone write plug has already been
3149 * through the preparation in this function, already holds a reference
3150 * on the queue usage counter, and is the only write BIO in-flight for
3151 * the target zone. Go straight to preparing a request for it.
3152 */
3153 if (bio_zone_write_plugging(bio)) {
3154 nr_segs = bio->__bi_nr_segments;
3155 goto new_request;
3156 }
3157
3158 if (unlikely(bio_queue_enter(bio)))
3159 return;
3160
3161 /*
3162 * Device reconfiguration may change logical block size or reduce the
3163 * number of poll queues, so the checks for alignment and poll support
3164 * have to be done with queue usage counter held.
3165 */
3166 if (unlikely(bio_unaligned(bio, q))) {
3167 bio_io_error(bio);
3168 goto queue_exit;
3169 }
3170
3171 if ((bio->bi_opf & REQ_POLLED) && !blk_mq_can_poll(q)) {
3172 bio->bi_status = BLK_STS_NOTSUPP;
3173 bio_endio(bio);
3174 goto queue_exit;
3175 }
3176
3177 bio = __bio_split_to_limits(bio, &q->limits, &nr_segs);
3178 if (!bio)
3179 goto queue_exit;
3180
3181 if (!bio_integrity_prep(bio))
3182 goto queue_exit;
3183
3184 if (blk_mq_attempt_bio_merge(q, bio, nr_segs))
3185 goto queue_exit;
3186
> 3187 if (blk_queue_is_zoned(q) && blk_zone_plug_bio(bio, nr_segs, &from_cpu))
3188 goto queue_exit;
3189
3190 new_request:
3191 rq = blk_mq_peek_cached_request(plug, q, from_cpu, bio->bi_opf);
3192 if (rq) {
3193 blk_mq_use_cached_rq(rq, plug, bio);
3194 /*
3195 * Here we hold two references: one because of the
3196 * bio_queue_enter() call and a second one as the result of
3197 * request allocation. Drop one.
3198 */
3199 blk_queue_exit(q);
3200 } else {
3201 rq = blk_mq_get_new_requests(q, from_cpu, plug, bio);
3202 if (unlikely(!rq)) {
3203 if (bio->bi_opf & REQ_NOWAIT)
3204 bio_wouldblock_error(bio);
3205 goto queue_exit;
3206 }
3207 }
3208
3209 trace_block_getrq(bio);
3210
3211 rq_qos_track(q, rq, bio);
3212
3213 blk_mq_bio_to_request(rq, bio, nr_segs);
3214
3215 ret = blk_crypto_rq_get_keyslot(rq);
3216 if (ret != BLK_STS_OK) {
3217 bio->bi_status = ret;
3218 bio_endio(bio);
3219 blk_mq_free_request(rq);
3220 return;
3221 }
3222
3223 if (bio_zone_write_plugging(bio))
3224 blk_zone_write_plug_init_request(rq);
3225
3226 if (op_is_flush(bio->bi_opf) && blk_insert_flush(rq))
3227 return;
3228
3229 if (plug) {
3230 blk_add_rq_to_plug(plug, rq);
3231 return;
3232 }
3233
3234 hctx = rq->mq_hctx;
3235 if ((rq->rq_flags & RQF_USE_SCHED) ||
3236 (hctx->dispatch_busy && (q->nr_hw_queues == 1 || !is_sync))) {
3237 blk_mq_insert_request(rq, 0);
3238 blk_mq_run_hw_queue(hctx, true);
3239 } else {
3240 blk_mq_run_dispatch_ops(q, blk_mq_try_issue_directly(hctx, rq));
3241 }
3242 return;
3243
3244 queue_exit:
3245 blk_queue_exit(q);
3246 }
3247
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-06-17 12:49 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-16 22:33 [PATCH v18 00/12] Improve write performance for zoned UFS devices Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 01/12] block: Support block drivers that preserve the order of write requests Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 02/12] block: Rework request allocation in blk_mq_submit_bio() Bart Van Assche
2025-06-26 0:00 ` Damien Le Moal
2025-06-26 17:25 ` Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 03/12] block: Support allocating from a specific software queue Bart Van Assche
2025-06-26 0:04 ` Damien Le Moal
2025-06-26 17:17 ` Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 04/12] blk-mq: Restore the zoned write order when requeuing Bart Van Assche
2025-06-26 0:11 ` Damien Le Moal
2025-06-26 19:42 ` Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 05/12] blk-zoned: Add an argument to blk_zone_plug_bio() Bart Van Assche
2025-06-17 12:49 ` kernel test robot [this message]
2025-06-26 0:15 ` Damien Le Moal
2025-06-26 17:16 ` Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 06/12] blk-zoned: Support pipelining of zoned writes Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 07/12] null_blk: Add the preserves_write_order attribute Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 08/12] scsi: core: Retry unaligned zoned writes Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 09/12] scsi: sd: Increase retry count for " Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 10/12] scsi: scsi_debug: Add the preserves_write_order module parameter Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 11/12] scsi: scsi_debug: Support injecting unaligned write errors Bart Van Assche
2025-06-16 22:33 ` [PATCH v18 12/12] scsi: ufs: Inform the block layer about write ordering Bart Van Assche
2025-06-17 6:58 ` Avri Altman
2025-06-19 12:49 ` Peter Wang (王信友)
2025-06-19 16:38 ` Bart Van Assche
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=202506172033.GPdkXO1C-lkp@intel.com \
--to=lkp@intel.com \
--cc=bvanassche@acm.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/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.