Re: low memory killer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Adding Greg to CC as the current maintainer of the staging and dropping
majordomo]

I am not Johannes but,

On Thu 20-11-14 09:26:05, zhiyuan_zhu@xxxxxxx wrote:
> hi Johannes
> 
> My name is Zhiyuan zhu, an android development engineer in htc.
> We encounter a lowmemorykiller’s problem.
> Coluld you help to kindly support? Thank you.

Please note that lowmemory killer is not part of Memory cgroup resource
controller. It is a staging driver which is supposed to be supported by
support by Android people. I am not sure about the current state but the
implementation and some concepts used to be broken in many ways.
Anyway I think the driver should be dropped from the tree or try to get
promoted to the regular tree _after_ it passes a proper review.
 
> Problem describtion:
> We noticed that gap of dumping cached value from “lowmemorykiller”
> and “/proc/meminfo/” are different apparently. Like example below,
> lowmemorykiller showed cache only has 72460kB while launcher was
> killed, but /proc/meminfo showed cached still has 142448kB. Please
> check why the gap of cache value between lowmemorykill and
> /proc/meminfo are huge.

lowmem_scan prints:
other_file = global_page_state(NR_FILE_PAGES) - global_page_state(NR_SHMEM) - total_swapcache_pages();

as per meminfo_proc_show(), Cached value corresponds to:
        cached = global_page_state(NR_FILE_PAGES) - total_swapcache_pages() - i.bufferram;

So those two values are quite different. E.g. lowmem killer ignores
shmem pages. This can be considerable amount of memory.

> kernel_e0058_0001_20141107_204711_LC4ABYA00200_htc_a31ul_0.54.999.1.txt at LC4ABYA00200
>         6      161030.084144       2014-11-07 21:44:53.304        lowmemorykiller: Killing 'om.htc.launcher' (4486), adj 294,
> 6      161030.084144       2014-11-07 21:44:53.304           to free 47856kB on behalf of 'kworker/u8:14' (20594) because
> 6      161030.084144       2014-11-07 21:44:53.304           cache 72460kB is below limit 73728kB for oom_score_adj 235
> 6      161030.084144       2014-11-07 21:44:53.304           Free memory is 51304kB above reserved
> 4      161030.084797       2014-11-07 21:44:53.304        MemFree:           55676 kB
> 4      161030.084797       2014-11-07 21:44:53.304        Buffers:            1240 kB
> 4      161030.084797       2014-11-07 21:44:53.304        Cached:           142448 kB

I do not see any code in drivers/staging/android/lowmemorykiller.c that
would print such an information in the current tree.

> Lowmemorykiller calculated cache value is 72460kB, but the
> /proc/meminfo’s cached is 142448 kB
> 
> After checked the code, I found that:
> Lowmemorykiller’s memory information is comes from /proc/zoneinfo
> file’s nr_file_pages So I want to know how different the
> /proc/zoneinfo file’s nr_file_pages and /proc/meminfo file’s
> Cached ?

See the above.

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]