--- Jeff Mahoney <jeffm@xxxxxxxx> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Xin Zhao wrote: > > No. I guess I didn't make my question clear. > > > > My question is: Will an inode be released after > the last file refers > > to this is closed? If so, this could bring a > performance issue. > > Consider this case: a process open a file, read > it, close it, then > > reopen this file, read it, close it. For every > open, the inode has to > > be read from disk again, which make hurt > performance. > > > > So I think inode should stay in inode_cache for a > while, not released > > right after the last file stops referring it. I > just want to know > > whether my guess is right. If it is, when will > kernel release the > > inode, since an inode cannot stay in memory > forever. > > That's pretty much exactly what happens. The kernel > caches inodes and > dentries when memory usage allows. When the last > reference to an inode > is dropped and the file system is still in use, the > inode goes on the > unused_inode list. It remains linked to the inode > hash table. When a > inode is requested, the hash table is checked before > trying to read it > back from disk. Check out generic_forget_inode() and > ifind(). > > When there is memory pressure, the VM system will > shrink these caches. > inode_init() registers a callback for the VM to call > shrink_icache_memory () which will finally free the > memory. Check out > mm/vmscan.c and fs/inode.c for more detailed > information. > > - -Jeff > > - -- > Jeff Mahoney > SUSE Labs Hello All, Continuing the above discusssion I want to ask one question. If a file system allocated new inodes using new_inode() then after this uses d_add or d_instantiate to attach this inode to a dentry, then what will happen when we get short of memory. In other words since new_inode() alolocates the memory for the inode in the inode cache and since we are getting short of memory so we can loose this inode but we already have attached this inode with a dentry. Then how the kernel will get the inode for this dentry since we already have loose the inode for this dentry. Similarly the file system allocates the memory for dentries using d_alloc; is this can also create problems like for the inodes. Thanks, Uzair Lakhani, Karachi, Pakistan. > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.2 (GNU/Linux) > Comment: Using GnuPG with SUSE - > http://enigmail.mozdev.org > > iD8DBQFEixcGLPWxlyuTD7IRAn1SAJ4yjgtJ9YL321W/18a7nttlaEc9pACeIMJX > yNUuC/impK4eZpHpLkwtCOQ= > =ykbS > -----END PGP SIGNATURE----- > - > To unsubscribe from this list: send the line > "unsubscribe linux-fsdevel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at > http://vger.kernel.org/majordomo-info.html > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html