JFFS2 Garbage collection issue
Joakim Tjernlund
joakim.tjernlund at transmode.se
Wed Nov 27 05:30:18 EST 2013
"linux-mtd" <linux-mtd-bounces at lists.infradead.org> wrote on 2013/11/27
11:23:25:
>
> "linux-mtd" <linux-mtd-bounces at lists.infradead.org> wrote on 2013/11/27
> 11:11:04:
> >
> > Hi all,
> >
> > we are currently facing a problem with the Garbage-collection on a
JFFS2
>
> > file system.
> >
> > We have an embedded linux system based on an ARM9 AT91RM9200 processor
> > with an Intel / Micron JS28F256 NOR-flash of 32MB in size.
> > The Flash holds the U-Boot loader and its environment and in the main
> > part (30MB) of the chip a JFFS2-based root-file-system.
> > Our Linux kernel version is 2.6.24.3
> >
> > Some minutes after startup of the system, the garbage collector (gc.c)
> > does a scan of the file system, gathering information for the garbage
> > collection procedures that may be initiated based upon that data.
> > On some file systems, especially such with long runtime and therefore
> > many file operations, this scan consumes a lot of time. On some
systems
> > it stays in that scan for more that 10 minutes. The problem with this
> > behaviour is the fact, that during the scan the file system is locked,
> > and therefore all file operations are suspended. This leads to a crash
> > of the system, when the application program hangs for a long time,
> > waiting for a file operation to return from a system call, and the
> > watchdog is not triggered.
> >
> > In a test system without watchdog, after the scan, the system runs
> normally.
> > The flash chip itself shows no errors, so it seems to be a problem of
> > the file system.
> >
> > Any idea or suggestion to solve the problem would be very welcome!
>
> The simple fix is to send a signal(SIGCONT?) to the GC process regularly
> to do GC
> over time. That way you don't get all GC at boot time.
>
> Jocke
BTW, I guess you got logging to file such as syslog on your system?
JFFS2 really don't do well with small incremental writes. I recommend
you turn such logging off.
More information about the linux-mtd
mailing list