On Mon 04-03-13 17:52:22, Lenky Gao wrote: > Hi, > > When i just run a test on Centos 6.2 as follows: > > #!/bin/bash > > while true > do > > file="/tmp/filetest" > > echo $file > > dd if=/dev/zero of=${file} bs=512 count=204800 &> /dev/null > > sleep 5 > done > > the inactive memory keep growing: > > #cat /proc/meminfo | grep Inactive\(fi > Inactive(file): 420144 kB > ... > #cat /proc/meminfo | grep Inactive\(fi > Inactive(file): 911912 kB > ... > #cat /proc/meminfo | grep Inactive\(fi > Inactive(file): 1547484 kB > ... > > and i cannot reclaim it: How did you try to reclaim the memory? How much memory is still free? Are you above watermaks (/proc/zoneinfo will tell you more) > # cat /proc/meminfo | grep Inactive\(fi > Inactive(file): 1557684 kB > # echo 3 > /proc/sys/vm/drop_caches > # cat /proc/meminfo | grep Inactive\(fi > Inactive(file): 1520832 kB > > I have tested on other version kernel, such as 2.6.30 and .6.11, the > problom also exists. > > When in the final situation, i cannot kmalloc a larger contiguous > memory, especially in interrupt context. This could be related to the memory fragmentation and your kernel seem to be too large to have memory compaction which helps a lot in that area. > Can you give some tips to avoid this? One way would be to increase /proc/sys/vm/min_free_kbytes which will enlarge watermaks so the reclaim starts sooner. > PS: > # uname -a > Linux localhost.localdomain 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 > 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux This is really an old kernel and also a distribution one which might contain a lot of patches on top of the core kernel. I would suggest to contact Redhat or try to reproduce the issue with the vanilla and up-to-date kernel and report here. -- Michal Hocko SUSE Labs _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel