All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.