[Yaffs] [Yaffs-archive] YAFFS size limits

Charles Manning manningc2@actrix.gen.nz
Wed, 3 Sep 2003 12:35:52 +1200


Someone recently asked me the maximum sizes of files etc in YAFFS.
The current code limits vaious sizes. Some of these can be relatively easily 
relaxed.

Below MB = megabytes (ie 2^20 bytes), GB = 2^30 bytes.

*Max file size. This is limited by the number of chunks in a file. chunkId, 
in yaffs_Tags, is 20 bits. This limits the maximum file size to 512MB. This 
could be relaxed by using larger chunks (a slight pain at present) .

*Maximum number of files: This is limited to 2^18 (ie. 256k files) by the 
objectId bitfield in yaffs_Tags.

The above two limitations can be traded off against each other by fiddling 
the bitfields.

*Max file system partition size. The current limitation is that the soft 
deletion code assumes the "chunk group" is no larger than a block. This 
limits the number of blocks to 2^16. With standard 16kB blocks this limits 
the file system size to 1GB. This limitation can be relatively easily worked 
around by using "virtual blocks"  which are multiples of "physical blocks" 
(eg. make two blocks of 32x512bytes into a single "virtual block" of 
64x512bytes). This would give a miximum file system size of 2GB.

YAFFS uses signed and unsigned 32-bit integers in places. These are likely to 
limit file and file system sizes to 2GB. Some tweaking and effort would be 
needed to remove these restrictions, (eg replacing file offsets etc with 
loff_t).

YAFFS2 is still in concept phase, but the preliminary design sketches remove 
some of these limitations. 

I don't know if anyone uses 1GB file systems yet, but there are shipping 
products using 512MB file systems.


-- CHarles


---------------------------------------------------------------------------------------
This mailing list is hosted by Toby Churchill open software (www.toby-churchill.org).
If mailing list membership is no longer wanted you can remove yourself from the list by 
sending an email to yaffs-request@toby-churchill.org with the text "unsubscribe" 
(without the quotes) as the subject.