public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: "Albrecht Dreß" <albrecht.dress@arcor.de>
To: "Albrecht, Harald" <harald.albrecht@elreha.de>
Cc: linux-mtd@lists.infradead.org
Subject: Re: JFFS2 Garbage collection issue
Date: Wed, 27 Nov 2013 20:27:55 +0100	[thread overview]
Message-ID: <1385580483.2836.0@deneb.(none)> (raw)
In-Reply-To: <5295C538.6040207@elreha.de> (from harald.albrecht@elreha.de on Wed Nov 27 11:11:04 2013)

[-- Attachment #1: Type: text/plain, Size: 2874 bytes --]

Hi Harald:

I had *exactly* the same issue with a board based on a MPC5200 (PPC).  I use kernel 3.2, and the problematic file system is a jffs2 on a NVRAM which is used to hold quickly changing logs and event buffers (before they are shifted to flash or a CF card).  Apparently the scan process is triggered immediately when the NVRAM is mounted by the startup script.  Apart from that I had the same picture - the scan eats so much time that the hw wdt is triggered... (see my original post <http://lists.infradead.org/pipermail/linux-mtd/2013-April/046632.html> - I unfortunately never got an answer to it).

My solution was to add a task to the startup script which monitors the scan process (jffs2_gcd_mtd6 in my case) and waits until it apparently finished.  The main application (which in turn activates the hardware wdt) is launched only *afterwards*; then everything seems to run just fine, even if there is much "traffic" on the nvram.

The monitor application basically identifies the pid of the jffs2_gcd_mtd6, and then repeatedly reads /proc/<pid>/stat as long as the sum of the utime, stime, cutime and cstime is still growing (of course with a maximum loop count, so the system doesn't deadlock).

Hope this helps,
Albrecht.


Am 27.11.13 11:11 schrieb(en) Albrecht, Harald:
> 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!
> 
> Harald Albrecht
> 
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
> 

[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]

  parent reply	other threads:[~2013-11-27 20:02 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-27 10:11 JFFS2 Garbage collection issue Albrecht, Harald
2013-11-27 10:23 ` Joakim Tjernlund
2013-11-27 10:30   ` Joakim Tjernlund
2013-11-27 19:34     ` Albrecht Dreß
2013-11-28  6:33       ` Joakim Tjernlund
2013-11-28  9:33   ` Albrecht, Harald
2013-11-28 11:03     ` Joakim Tjernlund
2013-11-27 19:27 ` Albrecht Dreß [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-07-27 18:44 JFFS2 Garbage Collection Issue suresh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='1385580483.2836.0@deneb.(none)' \
    --to=albrecht.dress@arcor.de \
    --cc=harald.albrecht@elreha.de \
    --cc=linux-mtd@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox