Messages in this thread | | | Date | Mon, 15 Mar 2010 03:03:38 +0000 | From | Jamie Lokier <> | Subject | Re: [Patch] fix MTD CFI/LPDDR flash driver huge latency bug |
| |
Stefani Seibold wrote: > Am Freitag, den 12.03.2010, 23:38 +0000 schrieb Jamie Lokier: > > Andrew Morton wrote: > > > On Sat, 06 Mar 2010 17:48:57 +0100 > > > Stefani Seibold <stefani@seibold.net> wrote: > > > > > > > > > The patch change all the use of spin_lock operations for xxxx->mutex > > > > into mutex operations, which is exact what the name says and means. > > > > It would be even better if it also split the critical sections into > > smaller ones with cond_resched() between, so that non-preemptible > > kernels benefit too. > > The problem is the memcpy operation which is very slow. A cond_resched > wouldn't help, since the cpu bus is blocked during the transfer of the > word.
I mean split the memcpy into multiple smaller memcpys, so that the total time in each memcpy is limited to something reasonable.
The check in cond_resched() is fast, especially once cached. memcpy speed depends a lot on the attached flash and how everything's configured, varying from 2.5MB/s up to hundreds of MB/s. So how about doing cond_resched() every 256 bytes?
-- Jamie
| |