hai everyone,
I found an idea of better use of page cache for 64 bit processors in linux symposium 2006.I am thinking of implementing this project. The idea is -
* increase page size so as to reduce TLB cache misses
* but this will lead to page cache wastage if size of file is small .suppose if size of page cache is 64 kb and size of file is 65kb then the file will take 2 page caches. and second page cache will contain only 1 kb data hence wasting remaining 63kb.To improve the condition we will allocate memory of required size from memory pool using Kmalloc and store the files of small sizes in those buffers.We will also keep a pointer to that buffer in the mapping data-structure of the corresponding file.
* Moreover any file-tail(last part of file that has very small size but still occupies a complete page cache)will be unpacked into a page cahe only when the file-tail is referenced by the kernel and as soon as the reference is over file-tail will again be repacked into buffers.
*since memory allocation from memory pool will allocate memory from low memeopry zone we can't implement it on 32 bit machines as low memory zone is already utilised for DMA support.But with 64 bit machines whole RAM :study: comes under low and normal memory zones so no problem of memory will occur.
*We can also maintain seprate memory pools for allocation to file-tails and as such this can be implemented on 32 bit machines too.
I WOULD WELCOME SUGGESTIONS AND COMMENTS ON THIS IDEA.
THE BASIC IDEA IS OF DAVE AND BADRI FROM IBM AS SUBMITTED IN LINUX 2006 SYMPOSIUM.