Hello On Fri, Apr 8, 2016 at 7:58 PM, Shuhrat Rahimov wrote: > Hello, > I was reading this post ( > http://www.yaffs.net/lurker/message/20090812.040040.5e77b55f.en.html ) > regarding the tnode size and RAM usage by the tnodes and have been confused. > When we look at source code at yaffs_guts_initialise() where the tnode > size is set we can see: > > dev->tnode_size = (dev->tnode_width * YAFFS_NTNODES_LEVEL0) / 8; > if (dev->tnode_size < sizeof(struct yaffs_tnode)) > dev->tnode_size = sizeof(struct yaffs_tnode); > So, in this case in ARM sizeof pointer would be 4 B (in 64-bit system even > greater) which gives sizeof(struct yaffs_tnode) = 32 B. In > yaffs_allocator.c in function yaffs_create_tnodes() 100 tnodes are > allocated at a time and there the memory allocation size is = n_tnodes * > dev->tnode_size = 100*32 = 3.2K for only 100 tnodes (here, according to the > post above I would expect 100*20 bit = 250 > Byte of RAM). In the post above it was stated that for 524288 chunks it was > needed 20 bits to represent each of them, but in code we can see that it is > needed at least 32 B = 26 bits for each tnode irrespective of the bits > needed to represent each tnode. Could you explain it to me, how much memory > is needed for a tnode? Would it be possible to decrease RAM usage by > decreasing YAFFS_NTNODES_LEVEL0 and other relevant constants or is tnode > size irrespective of that always at least sizeof(struct yaffs_tnode)? > The bit you are missing is that each the tnode structure holds multiple tnodes. For level 0 Tnodes that is 16 tnodes. For internal (level 1,2,...) it is 8 tnodes. You can adjust the size of the TNODE structure by adjusting: #define YAFFS_NTNODES_LEVEL0 16 #define YAFFS_TNODES_LEVEL0_BITS 4 #define YAFFS_TNODES_LEVEL0_MASK 0xf #define YAFFS_NTNODES_INTERNAL (YAFFS_NTNODES_LEVEL0 / 2) #define YAFFS_TNODES_INTERNAL_BITS (YAFFS_TNODES_LEVEL0_BITS - 1) #define YAFFS_TNODES_INTERNAL_MASK 0x7 Have you read HowYaffsWorks? That helps to explain some of this better: http://www.yaffs.net/sites/yaffs.net/files/yaffs.net/HowYaffsWorks.pdf Regards Charles > Regards, > Shuhrat Rahimov > > _______________________________________________ > yaffs mailing list > yaffs@stoneboat.aleph1.co.uk > http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs > >