JFFS2 speed question

Frederic Giasson fgiasson at mediatrix.com
Tue Sep 11 09:40:10 EDT 2001


Hi,

I have noticed such a problem and began to address it bug I lacked of time
and I have been moved on another project.  

When I copyied large files under the same conditions you described, I
experienced quite some lag. But what really appeared to me to be a serious
problem is the following: When I copy a large file to JFFS2 ( which fills it
to about 95% disk usage ), then I reboot my platform and remount JFFS2, the
large file is still there of course.  But if I erase it and try to copy it
back, the rm command never returns.  It seems that there is a problem with
the garbage collector.  The garbage collector could be spinning around
constantly moving data.  

Hope this will give you a hint.

Frédéric Giasson





|-----Original Message-----
|From: simon gittins [mailto:simon__gittins at hotmail.com]
|Sent: Tuesday, September 11, 2001 12:50 AM
|To: linux-mtd at lists.infradead.org
|Subject: JFFS2 speed question
|
|
|Hi
|
|I've been looking at the performance of jffs2 when under high stress 
|(copying large files when fs is largely full).  Looking at the 
|kernel debug 
|messages, I've noticed fairly frequent 3-5 second gaps.  I'm 
|fairly new to 
|jffs2, but I did some hacking in the source and found:
|
|1. The 5 second wait times are generally started by a request 
|for a file 
|semaphor, and are always terminated by kupdated, (which calls 
|write_super?). 
|  kupdated sleeps for 5 seconds (on my 2.4.9 kernel) between 
|iterations.  Am 
|I right in thinking that this is a large bottleneck in the 
|system?  I can 
|manually 'speed it up' by running the following shell commands 
|during a 
|block time:
|    kill -STOP 7; kill -CONT 7 #where 7 is the pid of kupdated
|Can we minimise the dependence of jffs2 on kupdated?
|
|
|2.  Semaphors appear to be held during the execution of 
|schedule().  While I 
|have not delved deeply enough to fully understand the 
|algorithms in place, a 
|plethora of printk's seem to suggest that there are occasions where a 
|process (gc or user process) would hold the semaphor and go to 
|sleep (via 
|schedule) without releasing the semaphor.  The other process 
|would then pick 
|up the execution, and (eventually) try to access the semaphor 
|and fall into 
|a sleep as well.  This appears to often cause the symptoms in 
|(1), where 
|both processes are napping until kupdated comes along.
|
|Am I on the right track?
|
|Is there any development time being spent looking at the 
|performance issue 
|(apart from mine)?
|
|
|
|I am working with 3 September CVS code on a 2.4.9 kernel.  I 
|am using a 
|pseudo flash device with mtdram to perform my tests.
|
|Regards
|Simon Gittins
|
|
|
|_________________________________________________________________
|Get your FREE download of MSN Explorer at 
|http://explorer.msn.com/intl.asp
|
|
|
|______________________________________________________
|Linux MTD discussion mailing list
|http://lists.infradead.org/mailman/listinfo/linux-mtd/
|




More information about the linux-mtd mailing list