[PATCH/RFC] Linux MTD striping middle layer

Alexander Belyakov alexander.belyakov at intel.com
Wed Mar 22 05:26:02 EST 2006


Artem,

Artem B. Bityutskiy wrote:
> But still, for example, if I want to use mtdram device, it is named 
> "mtdram test device", and using this name as a parameter of 
> mtdstripe.ko  looks insane.

True. Of course, it is possible to add mtd device number support for 
insmod configuration. I believe it is not the main issue.

>
>> Suggested algorithm supports striping for devices with different 
>> erasesize. In that (quite uncommon) case erasesize of superdevice is 
>> not just erasesize of subdevice multiplied by number of subdevices.
>
> Oh, this is interesting. You didn't mention this in the first mail, 
> right? You said that flashes must be the same...

It was said that flashes must be of the same type. We can't stripe NOR 
and NAND, but only NOR and NOR or NAND and NAND. Flashes of the same 
type can differ in erasesize and total size. Important thing that 
striping two devices with essentially different write/erase speed will 
not give significant performance increase since striped device will work 
with the speed of the slowest subdevice.

>
> So, If I have 2 flash chips, with eraseblock size X and Y, X < Y, I 
> still can stripe them? Well, fair enough. Am I right that you just 
> merge eraseblocks of the second chip to make the resulting "merged" 
> eraseblock not less then Y? E.g., you use N eraseblock of chip 2 for 
> each eraseblock of chip 1, where N = [X/Y] + 1, right?
>

Oh, it seems you meant N=[Y/X]+1 as X < Y. Anyway it is not right in 
general case. But you got the main idea - the virtual "merging" of 
subdevice eraseblocks.

Erasesize of superdevice is (erasesize_lcm * subdevice_number), where 
erasesize_lcm is least common multiple of subdevices erasesizes, and 
subdevice_number is a number of subdevices to be striped.

Thanks,
Alexander Belyakov




More information about the linux-mtd mailing list