|
Wide tnode support added: msg#00012linux.file-systems.yaffs
Hi YAFFSers I have checked in changes for wide tnode support. This speeds up reads on large NAND arrays, as per the patch that Andre submitted some while back, but uses a variable size bitmap instead which is far more frugal in its memory usage. To explain... The standard size level0 tnodes are 16-bits wide. That allows you to uniquely identify up to 64k "chunks". For 512-byte page devices that maxes out at 32MB (64k * 512). To handle larger devices YAFFS uses the concept of chunk groups. For example, on 128MB devices that means we can use the level0 tnode to identify a group of 4 chunks and then search for the chunk we want. This searching gets slower for larger devices as the chunk group size increases. The Bluewater guys did a hack where they used 32-but tnodes. Far bigger than needed, but no more searching required. The changes just checked in use a variable size bitmap instead. At initialisation, the tnode width is calculated (minimum 16 bits) and allocations and bitshuffling are matched to that size. This means we get a lot of performance improvement for large arrays with a slight increase in memory usage. See how it goes... -- Charles |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: YAFFS2 Development: 00012, Charles Manning |
|---|---|
| Next by Date: | Re: Wide tnode support added... and fixed!: 00012, Charles Manning |
| Previous by Thread: | YAFFS2 Developmenti: 00012, Jon Masters |
| Next by Thread: | Re: Wide tnode support added... and fixed!: 00012, Charles Manning |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |