Write performance issue with cfi_cmdset_0001.c
Josh Boyer
jdub at us.ibm.com
Fri Oct 28 17:50:20 EDT 2005
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);
Seems current CVS no longer does that in cfi_udelay.
>
> > For a fix, we added a conditional reschedule in the loop that calls
> > do_write_buffer in the cfi_intelext_write_buffers function. This made
> > write times of 256KiB go from 20-50 seconds to 1-6 seconds on average.
>
> I still can't figure out the linear sequence of events that can lead to
> the behavior you're seeing.
>
> Mind re-doing your explanation in pseudocode-like form to help my poor
> brain please?
I could if you'd like, but since I just realized the code doesn't have
the problem it's probably not worth it. Sorry for the false alarm.
josh
More information about the linux-mtd
mailing list