Mike Chen, with a small amount of help from myself, at PalmSource, modified LFS to use it as a NAND file system for the never shipped PalmOS Cobalt.
It took a lot of work to make it work in Cobalt. Most of that was modifying it to run in an OS without VFS or vnodes, but some of it was dealing with NAND.
Besides the extensive bug fixing, mostly for bugs that NAND exposes but disks don't, we demonstrated that LFS has no particular advantage for wear leveling although it is significantly better than FFS for not introducing wear.
The problem comes once a NAND partition is sufficiently full as to require frequent garbage collection. LFS has no awareness of the use count on NAND erase units, and so doesn't take wear leveling into account during GC.
We discussed whether or not to adapt LFS for NAND for our current project at DANGER, but concluded that it would be better for our purposes to use an existing NAND aware file system, or to write one specifically for NAND.
-----Original Message-----
From: tech-embed-owner%NetBSD.org@localhost on behalf of Toru Nishimura
Sent: Fri 10/5/2007 8:03 AM
To: tech-embed%netbsd.org@localhost
Subject: Re: nand flash
Yocto points me;
> Could LFS be more appropriate for 'wear levelling' ?
> Especially now that we can use it as root filesystem...
That's the long-standing argument to be proven by field practices.
The peculiarity of NAND erase constraint brings the consequence
that the best NAND write policy is to allocate fresh blocks all the time.
Never write-back to the existing blocks when they get modified.
This is a very comfortable match with the approarch behind BSDLFS.
Please remind the write-locality issue, excessive write in limited
portions of the whole store, is to happen at meta data updates,
like to grow directory or to maintain super block(s).
It was interesting experience to see the spacial write locality recorded
by write counter values of 4C81 NAND, with variety of faked disklabel
"geometries" and FFS build parameters. I guess such the research
has never been done so far. Good for under-grad student home work...
Toru Nishimura/ALKYL Technology