linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Martin K. Petersen" <martin.petersen@oracle.com>
To: NeilBrown <neilb@suse.de>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>,
	linux-raid@vger.kernel.org
Subject: Re: [PATCH] md: Use new topology calls to indicate alignment and  I/O sizes
Date: Wed, 10 Jun 2009 02:47:34 -0400	[thread overview]
Message-ID: <yq1ws7k60vt.fsf@sermon.lab.mkp.net> (raw)
In-Reply-To: <6579bc561e648e03ed4a739799e51d9e.squirrel@neil.brown.name> (NeilBrown's message of "Tue, 9 Jun 2009 15:02:08 +1000 (EST)")

>>>>> "Neil" == NeilBrown  <neilb@suse.de> writes:

>> + blk_queue_io_opt(mddev->queue, chunk_size * (mddev->raid_disks >>
>>  	blk_queue_io_opt(mddev->1));

Neil>  ">> 1" is wrong.  A raid10 may have more than 2 copies for each
Neil>  block.

I recall pondering when I wrote that.  Never got around to revisiting
the issue.  Your RAID10 implementation is a bit hipper than most :)


Neil>  This calculation needs to be a bit more subtle and take about of
Neil>  the particular layout (near, offset, or far).

Why would layout interfere with preferred I/O size?

How about:

    if (conf->raid_disks % conf->copies)
	blk_queue_io_opt(mddev->queue, chunk_size * conf->raid_disks);
    else
	blk_queue_io_opt(mddev->queue, chunk_size *
			 (conf->raid_disks / conf->copies));

I.e.:

2 drives, 2 copies: a1 a1       optimal I/O = 1 * chunk_size

3 drives, 2 copies: a1 a1 a2
                    a2 a3 a3    optimal I/O = 3 * chunk_size

4 drives, 2 copies: a1 a1 a2 a2	optimal I/O = 2 * chunk_size

4 drives, 3 copies: a1 a1 a1 a2
                    a2 a2 a3 a3
                    a3 a4 a4 a4 optimal I/O = 4 * chunk_size

And so on.  Does that make sense?  I.e. we try to keep all drives
equally busy.


Neil> You seem to be treating raid4 like raid6 :-)

Whoops.  I always forget about raid4.  Fixed.

-- 
Martin K. Petersen	Oracle Linux Engineering

  reply	other threads:[~2009-06-10  6:47 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-09  4:31 [PATCH] md: Use new topology calls to indicate alignment and I/O sizes Martin K. Petersen
2009-06-09  5:02 ` NeilBrown
2009-06-10  6:47   ` Martin K. Petersen [this message]
2009-06-11 10:25     ` Neil Brown
2009-06-12  4:43       ` Martin K. Petersen
  -- strict thread matches above, loose matches on Subject: below --
2009-06-23  4:54 Martin K. Petersen
2009-06-23 21:44 ` Mike Snitzer
2009-06-24  4:05   ` Neil Brown
2009-06-24  5:03     ` Martin K. Petersen
2009-06-24  6:22       ` Neil Brown
2009-06-24 17:07         ` Martin K. Petersen
2009-06-25  2:35           ` Neil Brown
2009-06-25  4:37             ` Martin K. Petersen
2009-06-25  6:16               ` Neil Brown
2009-06-25 16:24                 ` Martin K. Petersen

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=yq1ws7k60vt.fsf@sermon.lab.mkp.net \
    --to=martin.petersen@oracle.com \
    --cc=linux-raid@vger.kernel.org \
    --cc=neilb@suse.de \
    /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;
as well as URLs for NNTP newsgroup(s).