Dear joonsoo kim,
I have your patches for: Aggressively allocate memory from cma .... We are facing almost similar problem here. If any of your patches still working for you please let us know here. I would like to try those approach.
Thank you
Sent from Samsung Mobile
-------- Original message -------- From: PINTU KUMAR pintu_agarwal@yahoo.com Date: 09/07/2014 8:41 AM (GMT+09:00) To: linux-mm@kvack.org,linux-mm@kvack.org,linux-arm-kernel@lists.infradead.org,linaro-mm-sig@lists.linaro.org Cc: pintu.k@outlook.com,pintu.k@samsung.com,vishu_1385@yahoo.com,m.szyprowski@samsung.com,mina86@mina86.com,ngupta@vflare.org,iqbalblr@gmail.com Subject: [linux-3.10.17] Could not allocate memory from free CMA areas
Hi,
We are facing one problem on linux 3.10 when we try to use CMA as large as 56MB for 256MB RAM device. We found that after certain point of time (during boot), min watermark check is failing when "free_pages" and "free_cma_pages" are almost equal and falls below the min level.
system details: ARM embedded device: RAM: 256MB Kernel version: 3.10.17 Fixed Reserved memory: ~40MB Available memory: 217MB CMA reserved 1 : 56MB ZRAM configured: 128MB or 64MB min_free_kbytes: 1625 (default) Memory controller group enabled (MEMCG)
After boot-up the "free -tm" command shows free memory as: ~50MB CMA is used for all UI display purposes. CMA used during bootup is close to ~6MB. Thus most of the free memory is in the form of CMA free memory. ZRAM getting uses was around ~5MB.
During boot-up itself we observe that the following conditions are met.
if (free_pages - free_cma <= min + lowmem_reserve) { printk"[PINTU]: __zone_watermark_ok: failed !\n");
return false; } Here: free_pages was: 12940, free_cma was: 12380, min: 566, lowmem: 0
Thus is condition is met most of the time. And because of this watermark failure, Kswapd is waking up frequently. The /proc/pagetypeinfo reports that most of the higher order pages are from CMA regions.
We also observed that ZRAM is trying to allocate memory from CMA region and failing.
We also tried by decreasing the CMA region to 20MB. With this the watermark failure is not happening in boot time. But if we launch more than 3 apps {Browser, music-player etc}, again the watermark started failing.
Also we tried decreasing the min_free_kbytes=256, and with this also watermark is passed.
Our observation is that ZRAM/zsmalloc trying to allocate memory from CMA areas and failed.
Please let us know if anybody have come across the same problem and how to resolve this issue.
Thank You! Regards, Pintu
From: pintu_agarwal [mailto:pintu_agarwal@yahoo.com] Sent: Friday, July 25, 2014 12:15 AM To: PINTU KUMAR; linux-mm@kvack.org; linux-arm-kernel@lists.infradead.org; linaro-mm-sig@lists.linaro.org; iamjoonsoo.kim@lge.com; ritesh.list@gmail.com Cc: pintu.k@outlook.com; pintu.k@samsung.com; vishu_1385@yahoo.com; m.szyprowski@samsung.com; mina86@mina86.com; ngupta@vflare.org; iqbalblr@gmail.com Subject: RE: [linux-3.10.17] Could not allocate memory from free CMA areas
Dear joonsoo kim,
I have your patches for: Aggressively allocate memory from cma .... We are facing almost similar problem here. If any of your patches still working for you please let us know here. I would like to try those approach.
Hello,
I stopped to implement it, because there are other bugs on CMA related codes. Although aggressively allocate... doesn't have bugs itself, it enlarges existing freepage counting bugs significantly so I'm first trying to fix those bugs. See the below link.
https://lkml.org/lkml/2014/7/4/79
I will restart to implement aggressively... after fixing these bugs.
If you have interest on next version of aggressively allocate..., see the following link.
https://github.com/JoonsooKim/linux/tree/cma-fix-up-v3.0-next-20140625
Thanks.
linaro-mm-sig@lists.linaro.org