[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

jffs2 cpu usage

We have been (trying to) use jffs2 as a filesystem that is actively written
to (log files etc) and we had come to accept that the writing process could
be blocked for long periods of time due to garbage collect. What we had not
expected to see was the entire system (see below, this might be a slight
overstatement) blocked/cpu busy for seconds. Our real time processing is
separated from direct access to the filesystem once running including having
any logs written by the real time stuff passed via a (non-blocking, leaky)
fifo to a separate lower priority writer process. We are still investigating
exactly what gets blocked but aren't encouraged by the fact that we can't
even get a shell (via telnet) to respond.
Our realtime processing is technically hard-realtime, but the fact that it
is hard-realtime usually gets scoffed at because our deadlines are measured
in seconds and will tollerate average latency/jitter of the order of 200ms
and occasional delays of up to a second). We have plenty of cpu available -
except when jffs2 steals it...
If we allow the file system to get full(ish) we regularly see delays of the
order of 5 seconds when all we are doing is writes of log entries. What is
even more terrifying is that if we do an rm of the offending large file(s)
the system goes busy for several 10s of seconds presumably doing lots of
nice filesystem housekeeping.
This is on a AMD SC520 (single chip 486/586 PC) using 32Mbytes of directly
addressed Intel Strataflash.
Is this considered "normal" jffs2 behaviour?
Is there anything that can be done to either change it or work around it?
We can do workarounds to avoid realtime processes accessing jffs2 but we
cannot avoid having background processes doing quite a lot of general file
i/o (things like downloading new software while the old stuff is still
running) that while it can be slow, must not impact on the realtime
I'd welcome any suggestions.

Darryl Green.

To unsubscribe from this list: send the line "unsubscribe jffs-dev" in
the body of a message to majordomo@xxxxxxx.com