Re: [PATCH/RFC] Linux MTD striping middle layer

Alexander Belyakov
2006-03-22T10:26:59Z

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