JFFS2 very slow when erasing

Joakim Tjernlund joakim.tjernlund at transmode.se
Thu Oct 7 02:57:40 EDT 2010


With 2.6.35 JFFS2 takes a very long time cp files while it erases:
 cp big_file test
 rm test
 cp big_file test
The last cp op. takes several times longer because JFFS2 is erasing.
Revering the patches I helped out with make JFFS2 go fast again:
  jffs2: Stop triggering block erases from jffs2_write_super()
  jffs2: Rename jffs2_erase_pending_trigger() to jffs2_dirty_trigger()
  jffs2: Use jffs2_garbage_collect_trigger() to trigger pending erases
  jffs2: Require jffs2_garbage_collect_trigger() to be called with lock held
  jffs2: Wake GC thread when there are blocks to be erased
  jffs2: Erase pending blocks in GC pass, avoid invalid -EIO return

The final patches were somewhat different than the ones I originally wrote
and I THINK those didn't make JFFS2 go this slow.

I suspect there is a locking problem somewhere.

 Jocke




More information about the linux-mtd mailing list