From: Jens Axboe <axboe@suse.de>
To: Erik Slagter <erik@slagter.name>
Cc: DCox@icc.net, Linux IDE List <linux-ide@vger.kernel.org>
Subject: Re: Readahead with softraid1
Date: Fri, 8 Jul 2005 15:30:00 +0200 [thread overview]
Message-ID: <20050708132959.GM7050@suse.de> (raw)
In-Reply-To: <1120828592.23681.24.camel@localhost.localdomain>
On Fri, Jul 08 2005, Erik Slagter wrote:
> On Fri, 2005-07-08 at 08:16 -0400, Danny Cox wrote:
>
> > > What am I doing wrong here???
> >
> > Nothing. I'll take a shot at answering this one instead of lurking
> > this time. Then, I'll crawl back under my rock.
> >
> > The raid1 driver keeps a "last visited block" for each drive. This is
> > the block number that was most recently read or written by that drive.
> > When a read request arrives, the driver examines each drive for the
> > nearest last visited block to the one requested. Guess what? If the
> > read starts with drive sda, then it will *always* be the one chosen to
> > service the read in the future, because the last visited block number is
> > only one off. This would only change if there are multiple processes
> > performing I/O on the md device. Then, it may switch to another drive.
> > In any case, it will *tend* to stick with the same drive.
> >
> > Did I explain that well, or only muddy the waters?
>
> perfect explanation, thanks (and also Jens!).
>
> Is this a design decision or is it fundamentaly impossible to split the
> work amongst several drives? I guess the md driver at least do a
> prefetch of the next block/chunk on the "other" drive(s)?
Not sure if it's a design decision or just "this works ok, I'll fix it
later". Clearly there is a lot of room for improvement in the balancing
logic, to get more cases correct/faster. It's quite doable to split a
bio and send bits of it to various drives.
--
Jens Axboe
next prev parent reply other threads:[~2005-07-08 13:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-08 12:00 Readahead with softraid1 Erik Slagter
2005-07-08 12:05 ` Jens Axboe
2005-07-08 12:16 ` Danny Cox
2005-07-08 13:16 ` Erik Slagter
2005-07-08 13:30 ` Jens Axboe [this message]
2005-07-08 13:42 ` Danny Cox
2005-07-08 15:28 ` Greg Freemyer
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=20050708132959.GM7050@suse.de \
--to=axboe@suse.de \
--cc=DCox@icc.net \
--cc=erik@slagter.name \
--cc=linux-ide@vger.kernel.org \
/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).