Write performance issue with cfi_cmdset_0001.c

Nicolas Pitre nico at cam.org
Fri Oct 28 18:04:05 EDT 2005


On Fri, 28 Oct 2005, Josh Boyer wrote:

> On Fri, 2005-10-28 at 17:34 -0400, Nicolas Pitre wrote:
> > On Fri, 28 Oct 2005, Josh Boyer wrote:
> > 
> > > I'll preface this with a disclaimer that we saw this on 2.4, however the
> > > same general issue still seems to be present in MTD CVS.
> > 
> > For 2.6.x? Are you sure?
> 
> Apparently not.
> 
> > 
> > In 2.6 there is no schedule_timeout() anywhere in the MTD code.
> 
> Yeah, nevermind.  I forgot that cfi_udelay no longer does that.  In our
> kernel, cfi_udelay has:
> 
> if (current->need_resched)
> 	schedule_timeout(us);
> else
> 	udelay(us);

But current code has almost same behavior:

        if (us >= 1000) {
                msleep((us+999)/1000);
        } else {
                udelay(us);
                cond_resched();
        }

And therefore I wonder if what you saw could occur with that version as 
well.


Nicolas




More information about the linux-mtd mailing list