Hi,

Please find my reply inlined.


On Wed, Aug 10, 2011 at 1:04 PM, Prateek Sharma <prateek3.14@gmail.com> wrote:


On Wed, Aug 10, 2011 at 12:56 PM, Mulyadi Santosa <mulyadi.santosa@gmail.com> wrote:
Hi///

On 09/08/2011, =/_00/\/\ <z0032oom@gmail.com> wrote:
> Hi,
>
> Thanks for replying
> Here is one observation worth mentioning.
> On boot system it shows Mapped < Cached (In fact much less)

quite predictable.... during booting phase, your system read() much by
doesn't mmap() that much....

> After using system for some time following commands are executed.
> # sync and echo 3 > /proc/sys/vm/drop_cache
>
> Whenever above command is executed I can see Mapped > Cached.

by echoing "3" to drop_cache, you flush the content of page cache as
much as possible ...

 
Here is my understanding of what drop_page_cache does:
All page-cache pages are 'dropped' except the following:
1. Dirty pages. (they are *not* synced)
2. Mapped pages (pages 'in use' , mapped by rmap )
(There are a few more exceptions i dont recall now.)

But even in this case Cached (/proc/meminfo) should be always greater than Mapped(/proc/meminfo)  (As it will contain mapped  + Unmapped pages)
I also saw that Cached (/proc/meminfo) does not include Buffer Cache.

========= fs/proc/meminfo.c ========
cached = global_page_state(NR_FILE_PAGES) -
                        total_swapcache_pages - i.bufferram;
==============================

Even if drop_cache is not done is it ever possible to get Cached < Mapped ?



Regards,
  ~/