Re: Proposal: make RAID6 code optional

Bill Davidsen
2009-04-21T14:01:31Z

Matti Aarnio wrote:
> On Sat, Apr 18, 2009 at 03:56:17PM +0200, Jesper Juhl wrote:
>
>> On Sat, 18 Apr 2009, Prakash Punnoor wrote:
>>
>>> On Samstag 18 April 2009 10:09:54 Michael Tokarev wrote:
>>>
>>>> Prakash Punnoor wrote:
>>>>
> .....
>
>>>> What's your goal? What's the problem you're trying to solve?
>>>>
>>> Having duplicate code is not good, of course. But unused code is also not
>>> good. As I said, I only use RAID5, so I don't need RAID6 support. The RAID6
>>> support enlarges kernel (the built-in.o in drivers/md grows from 325kb to
>>> 414kb in my case), making boot time and compile time longer
>>>
>> By a few ms perhaps - nothing that you'd ever notice in real life... A
>> small price to pay for the shared code. If you were to split them all
>> again, the combined total size would be greater still.
>>
>
>
> I did quick "sum of symbol sizes" lookup of the raid.ko, and got
> it like this:
>
> nm -t d -n -S /lib/modules/2.6.27.21-170.2.56.fc10.x86_64/kernel/drivers/md/raid456.ko | grep raid4|awk '{print $2}'|sed -e 's/^0*//g'|awk '{sum+=$1}END{print sum}'
> ...
>
> raid4: 152
> raid5: 7165
> raid6: 75558
>
> Entire 64kB of that raid6 is single pre-initialized r/o datablock: raid6_gfmul
>
>
It would seem that that space could be allocated and populated when
raid6 was first used, as part of the initialization. I haven't looked at
that code since it was new, so I might be optimistic about doing it that
way.

> So yes, having RAID6 personality as separate module would be appropriate for
> systems that are only interested in RAID4 or RAID5. Separating the RAID4
> personality wastes space, separating RAID5 ... barely 2 of 4k memory pages.
>
> There are perhaps a few kB more of codes for RAID5 and RAID6 classes - not all
> local functions at each are named with relevant prefix, but overall I would
> consider extracting RAID6 as a reasonable goal with common codes on RAID4/5.
>
>
>>> - admittedly not
>>> by a big margin. But then again I could argue: Why not put RAID0,1,10,4,5,6
>>> into one big module? Makes no sense, huh?
>>>
>> Makes perfect sense to me. Just modprobe raid.o and you have all
>> raid levels available. That would make a lot of sense.
>>
>
> Also, systems with so many disks that they run RAID4/5/6 to begin with are
> likely to have enough memory so that "wasted" 75-80 kB does not matter.
>

Everything matters. "Take care of the pennies and the dollars will take
care of themselves" is not just an old German proverb.

--
bill davidsen <davidsen@tmr.com>
CTO TMR Associates, Inc

"You are disgraced professional losers. And by the way, give us our money back."
- Representative Earl Pomeroy, Democrat of North Dakota
on the A.I.G. executives who were paid bonuses after a federal bailout.