> what kind of system call will increase the size of cache?

be clear about which cache? Are you interested in dentry cache, inode cache
or page cache? dentry cache and inode cache can grow only by access to
filesystem, access multiple files on your system. For page cache increase,
you can simple copy a very large file say 1G.

> I write a test program as below but from top, the size of cache seems
no change

I didnt get the purpose of your test program, perhaps you want to put memory
pressure on your system. What your test program is doing is just calling
malloc, it does nothing but grow the virtual memory area of your heap, It
wont allocate physical pages until you access the virtual address, try to
write some bytes on each allocated memory such that each 4K page is
accessed. This results in page vault in kernel and since your address is
valid so it will allocate a page for you. Typically called Demand Paging.

If you really want to put memory pressure, try allocating memory in kernel
through kmalloc.

Rajat

On Mon, Nov 1, 2010 at 8:56 AM, loody <[email protected]> wrote:

> Dear all:
> I have some questions about virtual memory (VM) subsystem of the Linux
> kernel.
> 1. From linux doc, there is drop_caches in /proc/ which can let us to
> free the cache that kernel used, such as dentries and inodes, etc.
> I know i can echo 1, 2 or 3 to free different level of caches in the
> linux kernel, but is there any more elegant or programming rule that I
> can follow to let it used more efficiently?
>
> 2. what kind of system call will increase the size of cache?
>  I write a test program as below but from top, the size of cache seems
> no change
>
> #include<stdio.h>
> #include<stdlib.h>
> int main(void)
> {
>         int index;
>         char input;
>         char * point[1024];
>
>         for(index=0;index<1024;index++)
>         {
>         point[index]=malloc(1024*1024);
>         printf("please input any charter for going down:\n");
>         scanf("%c",&input);
>         }
>
> }
>
> the memory usage of test.mips increased but the cached size is always
> 4916k as below:
>
> Mem: 8352K used, 132800K free, 0K shrd, 60K buff, 4916K cached
> Load average: 0.00 0.00 0.00
>   PID USER     STATUS   VSZ  PPID %CPU %MEM COMMAND
>   400 0        SW       668     1  0.3  0.4 busybox.telnetd
>   498 0        RW       584   408  0.3  0.4 top
>   500 0        SW     10156   317  0.0  7.1 test.mips
>   317 0        SW       596     1  0.0  0.4 sh
>   408 0        SW       592   400  0.0  0.4 sh
>     1 0        SW       584     0  0.0  0.4 init
>     5 0        SW<        0     2  0.0  0.0 khelper
>    86 0        SW<        0     2  0.0  0.0 khubd
>     3 0        SW<        0     2  0.0  0.0 ksoftirqd/0
>    76 0        SW<        0     2  0.0  0.0 kblockd/0
>     4 0        SW<        0     2  0.0  0.0 events/0
>     2 0        SW<        0     0  0.0  0.0 kthreadd
>   112 0        SW         0     2  0.0  0.0 pdflush
>   113 0        SW<        0     2  0.0  0.0 kswapd0
>     8 0        SW<        0     2  0.0  0.0 async/mgr
>   116 0        SW<        0     2  0.0  0.0 crypto/0
>   252 0        SW<        0     2  0.0  0.0 mtdblockd
>   254 0        SW<        0     2  0.0  0.0 nftld
>   255 0        SW<        0     2  0.0  0.0 inftld
>   286 0        SW<        0     2  0.0  0.0 rpciod/0
>   253 0        SW<        0     2  0.0  0.0 ftld
>    89 0        SW<        0     2  0.0  0.0 kseriod
>   111 0        SW         0     2  0.0  0.0 pdflush
>   448 0        SW<        0     2  0.0  0.0 scsi_eh_1
>   449 0        SW<        0     2  0.0  0.0 usb-storage
>   114 0        SW<        0     2  0.0  0.0 nfsiod
>   115 0        SW<        0     2  0.0  0.0 cifsoplockd
>
> Mem: 8352K used, 132800K free, 0K shrd, 60K buff, 4916K cached
> Load average: 0.04 0.01 0.00
>   PID USER     STATUS   VSZ  PPID %CPU %MEM COMMAND
>   501 0        RW       584   408  0.5  0.4 top
>   400 0        SW       668     1  0.3  0.4 busybox.telnetd
>   500 0        SW     37912   317  0.0 26.8 test.mips
>   317 0        SW       596     1  0.0  0.4 sh
>   408 0        SW       592   400  0.0  0.4 sh
>     1 0        SW       584     0  0.0  0.4 init
>     5 0        SW<        0     2  0.0  0.0 khelper
>    86 0        SW<        0     2  0.0  0.0 khubd
>     3 0        SW<        0     2  0.0  0.0 ksoftirqd/0
>    76 0        SW<        0     2  0.0  0.0 kblockd/0
>     4 0        SW<        0     2  0.0  0.0 events/0
>     2 0        SW<        0     0  0.0  0.0 kthreadd
>   112 0        SW         0     2  0.0  0.0 pdflush
>   113 0        SW<        0     2  0.0  0.0 kswapd0
>     8 0        SW<        0     2  0.0  0.0 async/mgr
>   116 0        SW<        0     2  0.0  0.0 crypto/0
>   252 0        SW<        0     2  0.0  0.0 mtdblockd
>   254 0        SW<        0     2  0.0  0.0 nftld
>   255 0        SW<        0     2  0.0  0.0 inftld
>   286 0        SW<        0     2  0.0  0.0 rpciod/0
>   253 0        SW<        0     2  0.0  0.0 ftld
>    89 0        SW<        0     2  0.0  0.0 kseriod
>   111 0        SW         0     2  0.0  0.0 pdflush
>   448 0        SW<        0     2  0.0  0.0 scsi_eh_1
>   449 0        SW<        0     2  0.0  0.0 usb-storage
>   114 0        SW<        0     2  0.0  0.0 nfsiod
>   115 0        SW<        0     2  0.0  0.0 cifsoplockd
>
> appreciate your kind help,
> miloody
>
> --
> To unsubscribe from this list: send an email with
> "unsubscribe kernelnewbies" to [email protected]
> Please read the FAQ at http://kernelnewbies.org/FAQ
>
>

Reply via email to