All of lore.kernel.org
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: majianpeng <majianpeng@gmail.com>
Cc: linux-raid <linux-raid@vger.kernel.org>
Subject: Re: [PATCH] md:Add blk_plug in sync_thread.
Date: Wed, 27 Jun 2012 12:30:36 +1000	[thread overview]
Message-ID: <20120627123036.53871345@notabene.brown> (raw)
In-Reply-To: <201206111716521256611@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2975 bytes --]

On Mon, 11 Jun 2012 17:16:55 +0800 majianpeng <majianpeng@gmail.com> wrote:

> Add blk_plug in sync_thread will increase the performance of sync.
> Because sync_thread did not blk_plug,so when raid sync, the bio merge
> not well.
> 
> Testing environment:
> SATA controller: Intel Corporation 82801JI (ICH10 Family) SATA AHCI
> Controller.
> OS:Linux xxx 3.5.0-rc2+ #340 SMP Tue Jun 12 09:00:25 CST 2012
> x86_64 x86_64 x86_64 GNU/Linux.
> RAID5: four ST31000524NS disk.
> 
> Without blk_plug:recovery speed about 63M/Sec;
> Add blk_plug:recovery speed about 120M/Sec.
> 
> Using blktrace:
> blktrace -d /dev/sdb -w 60  -o -|blkparse -i -
> 
> without blk_plug:
> Total (8,16):
>  Reads Queued:      309811,     1239MiB	 Writes Queued:           0,        0KiB
>  Read Dispatches:   283583,     1189MiB	 Write Dispatches:        0,        0KiB
>  Reads Requeued:         0		 Writes Requeued:         0
>  Reads Completed:   273351,     1149MiB	 Writes Completed:        0,        0KiB
>  Read Merges:        23533,    94132KiB	 Write Merges:            0,        0KiB
>  IO unplugs:             0        	 Timer unplugs:           0
> 
> add blk_plug:
> Total (8,16):
>  Reads Queued:      428697,     1714MiB	 Writes Queued:           0,        0KiB
>  Read Dispatches:     3954,     1714MiB	 Write Dispatches:        0,        0KiB
>  Reads Requeued:         0		 Writes Requeued:         0
>  Reads Completed:     3956,     1715MiB	 Writes Completed:        0,        0KiB
>  Read Merges:       424743,     1698MiB	 Write Merges:            0,        0KiB
>  IO unplugs:             0        	 Timer unplugs:        3384
> 
> The ratio of merge will be markedly increased.
> 
> Signed-off-by: majianpeng <majianpeng@gmail.com>
> ---
>  drivers/md/md.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/md/md.c b/drivers/md/md.c
> index 1c2f904..90bdc37 100644
> --- a/drivers/md/md.c
> +++ b/drivers/md/md.c
> @@ -7298,6 +7298,7 @@ void md_do_sync(struct mddev *mddev)
>  	int skipped = 0;
>  	struct md_rdev *rdev;
>  	char *desc;
> +	struct blk_plug plug;
>  
>  	/* just incase thread restarts... */
>  	if (test_bit(MD_RECOVERY_DONE, &mddev->recovery))
> @@ -7446,7 +7447,8 @@ void md_do_sync(struct mddev *mddev)
>  		mddev->curr_resync = j;
>  	}
>  	mddev->curr_resync_completed = j;
> -
> +
> +	blk_start_plug(&plug);
>  	while (j < max_sectors) {
>  		sector_t sectors;
>  
> @@ -7586,6 +7588,7 @@ void md_do_sync(struct mddev *mddev)
>  	}
>   skip:
>  	set_bit(MD_CHANGE_DEVS, &mddev->flags);
> +	blk_finish_plug(&plug);
>  
>  	if (!test_bit(MD_RECOVERY_INTR, &mddev->recovery)) {
>  		/* We completed so min/max setting can be forgotten if used. */

Thanks again.

I've moved the call to "blk_finish_plug" up a bit to just after the
  out:
label, as it is possible to "goto skip" before calling blk_start_plug.

Thanks a lot,
NeilBrown

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

      parent reply	other threads:[~2012-06-27  2:30 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-11  9:16 [PATCH] md:Add blk_plug in sync_thread majianpeng
2012-06-11  9:32 ` Nagilum
2012-06-11 10:11   ` majianpeng
2012-06-11 10:30     ` Nagilum
2012-06-27  2:30 ` NeilBrown [this message]

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=20120627123036.53871345@notabene.brown \
    --to=neilb@suse.de \
    --cc=linux-raid@vger.kernel.org \
    --cc=majianpeng@gmail.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.