mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: axboe@kernel.dk, ming.lei@redhat.com, hch@lst.de,
	baolin.wang7@gmail.com, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH RESEND 4/5] block: Remove blk_mq_attempt_merge() function
Date: Mon, 17 Aug 2020 08:31:53 +0200	[thread overview]
Message-ID: <20200817063153.GD12248@lst.de> (raw)
In-Reply-To: <b9ae58ae4bc8b16a53fabd35ce163897286d856a.1597637287.git.baolin.wang@linux.alibaba.com>

On Mon, Aug 17, 2020 at 12:09:18PM +0800, Baolin Wang wrote:
>  		unsigned int nr_segs)
>  {
> @@ -447,7 +425,16 @@ bool __blk_mq_sched_bio_merge(struct request_queue *q, struct bio *bio,
>  			!list_empty_careful(&ctx->rq_lists[type])) {
>  		/* default per sw-queue merge */
>  		spin_lock(&ctx->lock);
> -		ret = blk_mq_attempt_merge(q, hctx, ctx, bio, nr_segs);
> +		/*
> +		 * Reverse check our software queue for entries that we could
> +		 * potentially merge with. Currently includes a hand-wavy stop
> +		 * count of 8, to not spend too much time checking for merges.
> +		 */
> +		if (blk_mq_bio_list_merge(q, &ctx->rq_lists[type], bio, nr_segs)) {
> +			ctx->rq_merged++;
> +			ret = true;
> +		}
> +
>  		spin_unlock(&ctx->lock);

This adds an overly long line.  That being said the whole thing could
be nicely simplified to:

	...

	if (e && e->type->ops.bio_merge)
		return e->type->ops.bio_merge(hctx, bio, nr_segs);

	if (!(hctx->flags & BLK_MQ_F_SHOULD_MERGE) ||
	    list_empty_careful(&ctx->rq_lists[hctx->type]))
		return false;

	/*
	 * Reverse check our software queue for entries that we could
	 * potentially merge with. Currently includes a hand-wavy stop count of
	 * 8, to not spend too much time checking for merges.
	 */
	spin_lock(&ctx->lock);
	ret = blk_mq_bio_list_merge(q, &ctx->rq_lists[type], bio, nr_segs);
	if (ret)
		ctx->rq_merged++;
	spin_unlock(&ctx->lock);

Also I think it would make sense to move the locking into
blk_mq_bio_list_merge.

  reply	other threads:[~2020-08-17  6:32 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-17  4:09 [PATCH RESEND 0/5] Some clean-ups for bio merge Baolin Wang
2020-08-17  4:09 ` [PATCH RESEND 1/5] block: Move bio merge related functions into blk-merge.c Baolin Wang
2020-08-17  6:15   ` Christoph Hellwig
2020-08-17  4:09 ` [PATCH RESEND 2/5] block: Remove redundant blk_mq_sched_allow_merge() validation Baolin Wang
2020-08-17  6:22   ` Christoph Hellwig
2020-08-17 12:06     ` Baolin Wang
2020-08-17  4:09 ` [PATCH RESEND 3/5] block: Add a new helper to attempt to merge a bio Baolin Wang
2020-08-17  6:26   ` Christoph Hellwig
2020-08-17 12:10     ` Baolin Wang
2020-08-17 12:24       ` Christoph Hellwig
2020-08-18  3:30         ` Baolin Wang
2020-08-17  7:55   ` [PATCH] block: fix boolconv.cocci warnings kernel test robot
2020-08-17  7:55   ` [PATCH RESEND 3/5] block: Add a new helper to attempt to merge a bio kernel test robot
2020-08-17  4:09 ` [PATCH RESEND 4/5] block: Remove blk_mq_attempt_merge() function Baolin Wang
2020-08-17  6:31   ` Christoph Hellwig [this message]
2020-08-17 12:10     ` Baolin Wang
2020-08-17  4:09 ` [PATCH RESEND 5/5] block: Remove __blk_mq_sched_bio_merge() helper Baolin Wang
2020-08-17  6:32   ` Christoph Hellwig
2020-08-17 12:14     ` Baolin Wang
2020-08-17 12:26       ` Christoph Hellwig
2020-08-18  3:29         ` Baolin Wang

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=20200817063153.GD12248@lst.de \
    --to=hch@lst.de \
    --cc=axboe@kernel.dk \
    --cc=baolin.wang7@gmail.com \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ming.lei@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome