[PATCH/RFC] Linux MTD striping middle layer

Vitaly Wool vwool at ru.mvista.com
Tue Mar 21 10:11:44 EST 2006


Alexander Belyakov wrote:

> Vitaly,
>
> 1. No. Striping itself does not kill XIP. But it's true that using XIP 
> with striped volume will not give any performance increase.

I'm quite unsure that XIP will be working on any other platform that 
yours if your changes are applied, sorry.

> 2. Please note, that mtdstripe.c is a just another middle layer module 
> as mtdconcat.c or mtdpart.c, for example. It can be used on top of ANY 
> command set.

So why didn't you provide a comprehensive patch for all the command sets?

>
> As it was described in original message, we have to provide correct 
> thread switching process - it is NOT striping problem but more generic 
> one. We have fixed it in cfi_cmdset_0001.c. And it can be fixed (CPT) 
> or workarounded (Priority switching and udelay modification) for other 
> command sets. CPT (Common polling thread) has also been made as 
> turnable module so anyone in any command set implementation could use it.

What PREEMPT_ modes did you test it with?

>
> Another important thing to be mentioned. The patch below was validated 
> on 4 different Intel flash chips (including Sibley) on arm-based 
> platform. It works and gives up to 85% performance increase on two 
> independent chips in system.

...on Intel ARM-like platform, I need to add. No other ARM platforms, I 
guess :P

We had a somewhat heated discussion on your changes in IRC :)
My POV is -- the idea itself definitely has some added value but I'm not 
sure if incorporating it into the main MTD code is a good idea.
I still think that having a lot of NOR flash erase cases means either HW 
or SW design mistake. And striping might be not a really necessary thing 
if the number of erase cases is small.

The implementation itself seems to be quite inmature and leaves a lot of 
questions - starting from what command-line parameters do mean and 
ending up with how it's supposed to work in a workload environment, 
given the threads etc. etc. Maybe it slows down the performance of the 
whole system, even though it does speed up the block erase.

Vitaly





More information about the linux-mtd mailing list