[JFFS2] GC patch for eCos port

Per Hedblom per.hedblom at abem.se
Thu Nov 11 10:50:03 EST 2004


> -----Original Message-----
> From: David Woodhouse [mailto:dwmw2 at infradead.org]
> Sent: Thursday, November 11, 2004 2:59 PM

Thank you for your explanation. We will rerun our tests.

> Can you elaborate? I've seen very few patches submitted, and from that
> I've inferred that we've been doing a good job of keeping the eCos port
> working.
 
That's true, but I am afraid that jffs2 has not been stressed and tested
enough in eCos. We have spent a lot of time without finding serious bugs
like this and I don't expect it to be stable yet.

> 
> > * it uses a lot of memory and memory management - a eCos system without
> > memory management needs fixed memory pools to run stable for a long
> time.
> > We use a lot of small files and if someone is considering jffs2 for a
> new
> > design I would recommend reserving a ram space for jffs2 that is in the
> > range of the flash area in use.
> 
> Yeah. That's sort of inherent to the design, unfortunately. We're toying
> with ways to improve it, but it's hard.
> 
Just wanted to give everybody an honest hint on memory usage and that eCos
users should use the pool implementation and I think that an updated ecos
implementation should include a fully pool supported memory management. We
currently runs the system with dynamic allocation to find out how may blocks
of different types that we need and then use this data to initialize a
static pool. 

> > * it doesn't do gc as a thread in eCos. This means that it almost always
> > want to do gc at the time when you need to write data.
> 
> People have reported this a few times. Each time I replied that it was
> easy for them to make it work if they care, and if they know how to do
> this stuff in eCos. Nobody did, so I even threw in the skeleton
> gcthread.c for eCos to give people a head-start.... and still nobody's
> implemented it.
> 

I have seen the skeleton but think I need some more guidance about how to
protect file operations and the gc operations from each other (what kind of
locking is needed?) before I give it a try.

Tanks,
Per Hedblom






More information about the linux-mtd mailing list