Write performance issue with cfi_cmdset_0001.c

Josh Boyer jdub at us.ibm.com
Sat Oct 29 13:08:06 EDT 2005


On Fri, 2005-10-28 at 18:04 -0400, Nicolas Pitre wrote:
> 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.
> 

Hm.. probably.  I need more coffee and time to dig into stuff.  I'll
post a more detailed evaluation on Monday.

josh





More information about the linux-mtd mailing list