linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Adding Reed-Solomon Personality to MD, need help/advice
@ 2004-01-31  6:59 Nathan Lewis
  2004-01-31  7:20 ` H. Peter Anvin
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Nathan Lewis @ 2004-01-31  6:59 UTC (permalink / raw)
  To: linux-raid

As part of my Master's thesis, I am working on adding a Reed-Solomon 
personality to the existing linux RAID structure and I would like some 
assistance.  I'll try to keep this as brief as possible, but I apologize if 
it gets long-winded.

So far, I've managed to add and register a personality with md, which 
involved a few minor changes to md.c and related header files, a few 
changes to mdadm to allow me to access things from userland.  I've 
discovered the 9 functions I need to implement (make_request, run, stop, 
etc), and managed to "successfully" create an md device using only stub 
functions.  So far so good.  Just for reference, I'm using kernel 2.4.22.

However, I can't really find concise documentation on exactly what those 9 
functions are supposed to do, and under what restrictions they must do them 
in.  I've been studying Rubini and Corbet's _Linux Device Drivers_ book, 
which goes into great detail on the responsibilities of a block device 
driver, and even covers the make_request function.  For now, that's what 
I'm focusing on anyway.

Anyway, here's my first real question:  the buffer_head bh passed into 
make_request obviously contains a request for that particular 
device.  However, this buffer_head could be the head of a linked list, with 
the next element located at b_reqnext.  However, all of the code I can find 
that uses make_request ignores bh->b_reqnext.  Is it guaranteed to be the 
only request when bypassing __make_request?  Also, the request_queue_t q is 
also ignored.  I assume this is there for use by __make_request (since it 
isn't even passed to <personality>_make_request).

Second question:  Since <personality>_make_request doesn't alter the 
request_queue_t q, it need not worry about the io_request_lock that is 
stressed in the Rubini book, correct?  I think I only have to worry about 
locks for any internal structures/buffers I use/create.

Third question:  The raid5 thread is registered with the md 
driver.  Besides the code in raid5.c, what else can wake up this 
thread?  Anything?

That's probably enough for now.  I'm sure I'll have more questions down the 
line, but I need a thorough understanding of what is there before I can add 
anything to it.

Thanks,
--Nathan Lewis

nathapl@cs.okstate.edu


^ permalink raw reply	[flat|nested] 15+ messages in thread
* RE: Adding Reed-Solomon Personality to MD, need help/advice
@ 2006-01-03 22:08 Bailey, Scott
  2006-01-05  0:23 ` Jeff Breidenbach
  2006-01-08 17:49 ` Bill Davidsen
  0 siblings, 2 replies; 15+ messages in thread
From: Bailey, Scott @ 2006-01-03 22:08 UTC (permalink / raw)
  To: linux-raid

Interestingly, I was just browsing this paper
http://www.cs.utk.edu/%7Eplank/plank/papers/CS-05-569.html which appears
to be quite on-topic for this discussion. I admit my eyes glaze over
during intensive math discussions but it appears tuned RS might not be
as horrible as you'd think since apparently state-of-the-art now
provides tricks to avoid the Galois Field operations that used to be
required.

The thought that came to my mind was "how does md's RAID-6 personality
compare to EVENODD coding?"

Wondering if my home server will ever have enough storage for these
discussions to become non-academic for me, :-) 

	Scott


-----Original Message-----
From: linux-raid-owner@vger.kernel.org
[mailto:linux-raid-owner@vger.kernel.org] On Behalf Of H. Peter Anvin
Sent: Thursday, December 29, 2005 1:41 PM
To: linux-raid@vger.kernel.org
Subject: Re: Adding Reed-Solomon Personality to MD, need help/advice

Followup to:  <dlsh2c$2h0$1@sea.gmane.org>
By author:    "Mario 'BitKoenig' Holbe" <Mario.Holbe@TU-Ilmenau.DE>
In newsgroup: linux.dev.raid
>
> Hello,
> 
> Nathan Lewis <nathapl@cs.okstate.edu> wrote:
> > As part of my Master's thesis, I am working on adding a Reed-Solomon

> > personality to the existing linux RAID structure and I would like
some 
> 
> Is there any progress in implementing a generic Reed-Solomon
personality
> in MD since this mail from 31 Jan 2004?
> Regarding the intention-question... for me, personally, it would be
the
> logical step inbetween raid5 resp. raid6 with survival of 1 resp. 2
> simultaneous disk failures and raid10 with survival of n/2
simultaneous
> disk failures. RaidRS would give users the chance to configure
> redundancy and thus survivability exactly on their demands.
> This would especially make sense when I see the raid5 configurations
> with 14 and more devices which some users refer to on this list.
> To be honest, I was thinking about such a personality myself, too, and
> then was crawling the list's archive.
> 

It's not really in-between; generic RS RAID would be many times slower
than either; however, unlike raid10 it could survive *any* m failures
where m is the number of redundancy drives.

The fundamental problem is that generic RS requires table lookups even
in the common case, whereas RAID-6 uses shortcuts to substantially
speed up the computation in the common case.  RAID-6 is an important
corner of the problem space, since it deals with the unfortunately
fairly common problem of "disk failure discovered during recovery"
with RAID-5.

That doesn't mean there couldn't be a problem space where it would
make sense (in fact, on the contrary), but it's still a substantial
engineering effort that would have to be justified.

Heck, I might even be persuaded to look for generic RS shortcuts if
someone tempted me enough...

	-hpa

-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2006-01-08 17:49 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-01-31  6:59 Adding Reed-Solomon Personality to MD, need help/advice Nathan Lewis
2004-01-31  7:20 ` H. Peter Anvin
2004-01-31 10:53 ` Neil Brown
2004-01-31 18:56   ` Nathan Lewis
2004-02-13  4:35   ` Nathan Lewis
2004-02-13 14:18     ` Ming Zhang
2004-02-13 20:54       ` Nathan Lewis
2005-11-21 13:11 ` Mario 'BitKoenig' Holbe
2005-12-29 18:40   ` H. Peter Anvin
2005-12-29 19:23     ` Bill Rugolsky Jr.
2005-12-29 19:54     ` Jeff Breidenbach
2005-12-29 21:14       ` H. Peter Anvin
  -- strict thread matches above, loose matches on Subject: below --
2006-01-03 22:08 Bailey, Scott
2006-01-05  0:23 ` Jeff Breidenbach
2006-01-08 17:49 ` Bill Davidsen

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).