[Yaffs] Optinins sought on change attribute times to 64 bits
Ian McDonnell
ian at brightstareng.com
Tue Aug 2 15:52:15 BST 2005
On Tuesday 02 August 2005 04:02
manningc2 at actrix.gen.nz wrote:
> AT present, YAFFS2 uses 64-bit times for WinCE and 32-bits for
> other stuff.
>
> IMHO it would be best to use 64 bit for everything internally
> and use some sort of fudge factor for 2.4 kernel.
>
> Benefits:
> 1) Get the feature in OSs that support it.
> 2) Get rid of ugly #ifdef WINCE stuff in the code.
>
> Unless there is a noise to the negative, I'll do this in two
> days or so.
Here's an opinion... and this is just for your consideration,
I understand your motive for change and it looks like you are
only considering the in-memory timestamps, not those in flash,
is that right?
Long-term stability in the on-media data format is very
desireable. I'm sure you have given a lot of thought to what's
actually layed-down in flash. We have (user) data in NAND that
*will* outlive the version of YAFFS/MTD code that created it.
We will need to access data in NAND in whatever format it happens
to be in. It is not easy to save, reformat and reinstall data
from NAND in an isolated embedded system where there is more
data than free RAM.
We recently hit an issue with the ECC byte ordering. We have
thousands of units in the field that run with the original YAFFS
code on small-page NAND, now we have moved to the YAFFS2 code
base (to support large-page devices) and have found that the
MTD-based ECC has different on-NAND byte ordering when running
in YAFFS1 mode. Of course we have fixed this with a simple
change to the code which we will have to maintain. Some users
have a real need to support older formats 'forever', and it
would be very nice if YAFFS could be built to support its older
formats without too much hacking.
If you are considering a change to the on-NAND format, perhaps
adding a format version identifier somewhere (c.f. disk
superblock) would aid the management of variant NAND formats, so
newer YAFFS/MTD code can be deterministic and figure out what to
do when it meets old NAND data. The same layering technique you
use with the internal/external tags format conversion could be
applied to Yaffs objects too -- treat it like a network protocol
with an internal representation and a separate on-the-wire
(on-the-nand) representation.
-imcd
More information about the yaffs
mailing list