linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: PINTU KUMAR <pintu_agarwal@yahoo.com>
To: Adarsh Sharma <eddy.adarsh@gmail.com>, PINTU KUMAR <pintu.k@samsung.com>
Cc: "Ankur.Tank@lnttechservices.com" <Ankur.Tank@lnttechservices.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"artfri2@gmail.com" <artfri2@gmail.com>
Subject: Re: Memory fragmentation issue related suggestion request
Date: Tue, 13 Sep 2016 17:21:37 +0000 (UTC)	[thread overview]
Message-ID: <1033312829.427970.1473787297945@mail.yahoo.com> (raw)
In-Reply-To: <CAGx-QqLo-fc9enRjBe60Pq--39QBM+-B_VSpcAp1_e_uqNYD4Q@mail.gmail.com>

Hi,

You need to scribe in plain text only.


Thanks

>________________________________
> From: Adarsh Sharma <eddy.adarsh@gmail.com>
>To: PINTU KUMAR <pintu.k@samsung.com> 
>Cc: Ankur.Tank@lnttechservices.com; linux-kernel@vger.kernel.org; linux-mm@kvack.org; artfri2@gmail.com
>Sent: Monday, 12 September 2016 12:06 PM
>Subject: Re: Memory fragmentation issue related suggestion request
> 
>
>
>Hi Pintu,
>
>I am also looking for a mailing list where we can share memory related issues at kernel level. I tried subscribing to that mailing list but it says Invalid ID :
>
>>>>> --001a11436926db8726053c49ac67
>**** Command '-- 001a11436926db8726053c49ac67' not recognized.
>>>>> Content-Type: text/plain; charset=UTF-8
>**** Command 'content-type:' not recognized.
>>>>>
>>>>> subscribe linux-mm@kvack.org
>**** subscribe: unknown list 'linux-mm@kvack.org'.
>
>Thanks
>
>
>
>On Mon, Sep 12, 2016 at 11:42 AM, PINTU KUMAR <pintu.k@samsung.com> wrote:
>
>Dear Ankur,
>>
>>I would suggest you register to linux-mm@kvack.org and explain your issues in details.
>>There are other experts here, who can guide you.
>>
>>Few comments are inline below.
>>
>>> From: Ankur Tank [mailto:Ankur.Tank@ LntTechservices.com]
>>> Sent: Saturday, September 10, 2016 5:26 PM
>>> To: pintu.k@samsung.com
>>> Cc: artfri2@gmail.com
>>> Subject: Memory fragmentation issue related suggestion request
>>>
>>> Hello Pintukumar,
>>>
>>> TL;DR
>>> We have an issue in our Linux box, what looks like memory fragmentation issue,
>>> while searching on net I referred talk you gave in Embedded Linux Conf.
>>I have several talks in ELC, not sure which one you are referring to. Please point out.
>>
>>> I am facing this issue for couple of weeks so thought to ask you for suggestions.
>>> Please forgive me If I offended you by writing mail to you, Ignore mail if you feel so.
>>>
>>> Details
>>> We are facing one issue in our Embedded Linux board, Our board is Beaglebone
>>> black based custom board, with 4GB eMMC as storage. We are using Linux kernel
>>> 3.12.
>>In addition, you may need to provide the following information:
>>RAM size ?
>>cat /proc/meminfo  (before and after the operation)
>>cat /proc/buddyinfo (before and after the operation)
>>cat /proc/vmstat (before and after the operation)
>>
>>> Our firmware upgrade strategy is using backgup partition for Bootloader, Kernel,
>>> dtb, rootfs.
>>> So,
>>> During firmware upgrade with big rootfs and running dd to read the partition in raw
>>> mode.
>>> In short looks like those operations are overloading the system.
>>>
>>I am not sure, but I think this is the crude way of taking the backup.
>>This will certainly overload your system.
>>FOTA upgrade experts can give more comments here.
>>
>>> From below log looks like pages above 32KB size is not available and may be
>>> because of that rootfs tar on the emmc is failing.
>>> I have following queries in that regards,
>>>
>>> 1.       Do you think it is a memory fragmentation ?
>>Yes, if all above 32KB (2^3 order) pages are not available, and pages are available in lower orders (2^0/1/2) then its certainly fragmentation problem.
>>However, as I said, you need to provide the following output to confirm:
>>cat /proc/buddyinfo
>>
>>> May be silly to ask so but just to confirm, because I had added the software swap
>>> however with that also we were seeing issue reproducible and swap was not full at
>>> that time ☹
>>>
>>Well, adding swap should help a bit but it may not solve the problem completely.
>>How much swap did you actually allocated?
>>What kind of swap you used ?
>>Is it ZRAM/ZSWAP (with compression support) ?
>>What is the swappiness ratio ? (/proc/sys/vm/swappiness)
>>
>>> 2.       If it is so how do we handle it ? is there a some way similar to your shrinker
>>> utility to reclaim the memory pages ?
>>>
>>Not sure which shrinker utility are you referring to ?
>>Is it : /proc/sys/vm/shrink_memory ?
>>
>>> Any suggestion would help me move forward,
>>>
>>Did you tried enabling CONFIG_COMPACTION ?
>>Try using ZRAM or ZSWAP (~30% of MemTotal).
>>Try tuning : /proc/sys/vm/dirty_{ background_ratio/bytes} and others.
>>[Refer kernel/documentation for the same]
>>
>>From the logs, I observed the following:
>>> [ 6676.674219] mmcqd/1: page allocation failure: order:1, mode:0x200020
>>Order-1 allocation is failing, so pages might be sitting in order-0.
>>> [ 6676.674739]  free_cma:1982
>>You have around ~7MB of CMA free pages, so this cannot be used for non-movable allocation.
>>> [ 6676.674885] 51661 total pagecache pages
>>You have huge amount of memory sitting in caches. These can be reclaimed in back ground (with slight performance degradation).
>>To experiment and debug you can try: echo 3 > /proc/sys/vm/drop_caches
>>> [ 6676.674925] Total swap = 0kB
>>Swap is not enabled on your system.
>>
>>
>>> Regards,
>>> Ankur
>>>
>>> Error log
>>> ----------------------------
>>>
>>> [ 6676.674219] mmcqd/1: page allocation failure: order:1, mode:0x200020
>>>    [ 6676.674256] CPU: 0 PID: 612 Comm: mmcqd/1 Tainted: P           O 3.12.10-005-
>>> ts-armv7l #2
>>>     [ 6676.674321] [<c0012d24>] (unwind_backtrace+0x0/0xf4) from [<c0011130>]
>>> (show_stack+0x10/0x14)
>>>     [ 6676.674355] [<c0011130>] (show_stack+0x10/0x14) from [<c0087548>]
>>> (warn_alloc_failed+0xe0/0x118)
>>>     [ 6676.674383] [<c0087548>] (warn_alloc_failed+0xe0/0x118) from [<c008a3ac>]
>>> (__alloc_pages_nodemask+0x74c/ 0x8f8)
>>>     [ 6676.674413] [<c008a3ac>] (__alloc_pages_nodemask+0x74c/ 0x8f8) from
>>> [<c00b2e8c>] (cache_alloc_refill+0x328/ 0x620)
>>>     [ 6676.674436] [<c00b2e8c>] (cache_alloc_refill+0x328/ 0x620) from
>>> [<c00b3224>] (__kmalloc+0xa0/0xe8)
>>>     [ 6676.674471] [<c00b3224>] (__kmalloc+0xa0/0xe8) from [<c0212904>]
>>> (edma_prep_slave_sg+0x84/ 0x388)
>>>     [ 6676.674505] [<c0212904>] (edma_prep_slave_sg+0x84/ 0x388) from
>>> [<c02ec0a0>] (omap_hsmmc_request+0x414/ 0x508)
>>>     [ 6676.674544] [<c02ec0a0>] (omap_hsmmc_request+0x414/ 0x508) from
>>> [<c02d6748>] (mmc_start_request+0xc4/0xe0)
>>>     [ 6676.674568] [<c02d6748>] (mmc_start_request+0xc4/0xe0) from
>>> [<c02d7530>] (mmc_start_req+0x2d8/0x38c)
>>>     [ 6676.674589] [<c02d7530>] (mmc_start_req+0x2d8/0x38c) from [<c02e4818>]
>>> (mmc_blk_issue_rw_rq+0xb4/ 0x9d8)
>>>     [ 6676.674611] [<c02e4818>] (mmc_blk_issue_rw_rq+0xb4/ 0x9d8) from
>>> [<c02e52e0>] (mmc_blk_issue_rq+0x1a4/0x468)
>>>     [ 6676.674631] [<c02e52e0>] (mmc_blk_issue_rq+0x1a4/0x468) from
>>> [<c02e5c68>] (mmc_queue_thread+0x88/0x118)
>>>     [ 6676.674657] [<c02e5c68>] (mmc_queue_thread+0x88/0x118) from
>>> [<c004d8b8>] (kthread+0xb4/0xb8)
>>>     [ 6676.674681] [<c004d8b8>] (kthread+0xb4/0xb8) from [<c000e298>]
>>> (ret_from_fork+0x14/0x3c)
>>>     [ 6676.674691] Mem-info:
>>>     [ 6676.674700] Normal per-cpu:
>>>     [ 6676.674711] CPU    0: hi:   90, btch:  15 usd:  79
>>>     [ 6676.674739] active_anon:4889 inactive_anon:13 isolated_anon:0
>>>     [ 6676.674739]  active_file:8082 inactive_file:43196 isolated_file:0
>>>     [ 6676.674739]  unevictable:422 dirty:2 writeback:1152 unstable:0
>>>     [ 6676.674739]  free:3286 slab_reclaimable:1090 slab_unreclaimable:915
>>>     [ 6676.674739]  mapped:1593 shmem:39 pagetables:181 bounce:0
>>>     [ 6676.674739]  free_cma:1982
>>>     [ 6676.674800] Normal free:13144kB min:2004kB low:2504kB high:3004kB
>>> active_anon:19556kB inactive_anon:52kB active_file:32328kB
>>> inactive_file:172784kB unevictable:o
>>>     [ 6676.674813] lowmem_reserve[]: 0 0 0
>>>     [ 6676.674831] Normal: 2584*4kB (UMC) 217*8kB (C) 57*16kB (C) 5*32kB (C)
>>> 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB =
>>> 13144kB
>>>     [ 6676.674885] 51661 total pagecache pages
>>>     [ 6676.674900] 0 pages in swap cache
>>>     [ 6676.674910] Swap cache stats: add 0, delete 0, find 0/0
>>>     [ 6676.674918] Free swap  = 0kB
>>>     [ 6676.674925] Total swap = 0kB
>>>     [ 6676.674938] SLAB: Unable to allocate memory on node 0 (gfp=0x20)
>>>     [ 6676.674949]   cache: kmalloc-8192, object size: 8192, order: 1
>>>     [ 6676.674962]   node 0: slabs: 3/3, objs: 3/3, free: 0
>>>     [ 6676.674984] omap_hsmmc 481d8000.mmc: prep_slave_sg() failed
>>>     [ 6676.674997] omap_hsmmc 481d8000.mmc: MMC start dma failure
>>>     [ 6676.676181] mmcblk0: unknown error -1 sending read/write command, card
>>> status 0x900
>>>     [ 6676.676300] end_request: I/O error, dev mmcblk0, sector 27648
>>>     [ 6676.676318] Buffer I/O error on device mmcblk0p9, logical block 896
>>>     [ 6676.676329] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676401] end_request: I/O error, dev mmcblk0, sector 27656
>>>     [ 6676.676415] Buffer I/O error on device mmcblk0p9, logical block 897
>>>     [ 6676.676425] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676450] end_request: I/O error, dev mmcblk0, sector 27664
>>>     [ 6676.676461] Buffer I/O error on device mmcblk0p9, logical block 898
>>>     [ 6676.676471] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676494] end_request: I/O error, dev mmcblk0, sector 27672
>>>     [ 6676.676505] Buffer I/O error on device mmcblk0p9, logical block 899
>>>     [ 6676.676515] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676537] end_request: I/O error, dev mmcblk0, sector 27680
>>>     [ 6676.676548] Buffer I/O error on device mmcblk0p9, logical block 900
>>>     [ 6676.676558] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676580] end_request: I/O error, dev mmcblk0, sector 27688
>>>     [ 6676.676591] Buffer I/O error on device mmcblk0p9, logical block 901
>>>     [ 6676.676601] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676622] end_request: I/O error, dev mmcblk0, sector 27696
>>>     [ 6676.676634] Buffer I/O error on device mmcblk0p9, logical block 902
>>>     [ 6676.676643] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676665] end_request: I/O error, dev mmcblk0, sector 27704
>>>     [ 6676.676676] Buffer I/O error on device mmcblk0p9, logical block 903
>>>     [ 6676.676685] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676707] end_request: I/O error, dev mmcblk0, sector 27712
>>>     [ 6676.676718] Buffer I/O error on device mmcblk0p9, logical block 904
>>>     [ 6676.676728] lost page write due to I/O error on mmcblk0p9
>>>     [ 6676.676749] end_request: I/O error, dev mmcblk0, sector 27720
>>>     [ 6676.678266] mmcqd/1: page allocation failure: order:1, mode:0x200020
>>>     [ 6676.678285] CPU: 0 PID: 612 Comm: mmcqd/1 Tainted: P           O 3.12.10-005-
>>> ts-armv7l #2
>>>     [ 6676.678330] [<c0012d24>] (unwind_backtrace+0x0/0xf4) from [<c0011130>]
>>> (show_stack+0x10/0x14)
>>>     [ 6676.678358] [<c0011130>] (show_stack+0x10/0x14) from [<c0087548>]
>>> (warn_alloc_failed+0xe0/0x118)
>>>     [ 6676.678385] [<c0087548>] (warn_alloc_failed+0xe0/0x118) from [<c008a3ac>]
>>> (__alloc_pages_nodemask+0x74c/ 0x8f8)
>>>     [ 6676.678412] [<c008a3ac>] (__alloc_pages_nodemask+0x74c/ 0x8f8) from
>>> [<c00b2e8c>] (cache_alloc_refill+0x328/ 0x620)
>>>     [ 6676.678434] [<c00b2e8c>] (cache_alloc_refill+0x328/ 0x620) from
>>> [<c00b3224>] (__kmalloc+0xa0/0xe8)
>>>     [ 6676.678464] [<c00b3224>] (__kmalloc+0xa0/0xe8) from [<c0212904>]
>>> (edma_prep_slave_sg+0x84/ 0x388)
>>>     [ 6676.678493] [<c0212904>] (edma_prep_slave_sg+0x84/ 0x388) from
>>> [<c02ec0a0>] (omap_hsmmc_request+0x414/ 0x508)
>>>     [ 6676.678524] [<c02ec0a0>] (omap_hsmmc_request+0x414/ 0x508) from
>>> [<c02d6748>] (mmc_start_request+0xc4/0xe0)
>>>     [ 6676.678547] [<c02d6748>] (mmc_start_request+0xc4/0xe0) from
>>> [<c02d7530>] (mmc_start_req+0x2d8/0x38c)
>>>     [ 6676.678568] [<c02d7530>] (mmc_start_req+0x2d8/0x38c) from [<c02e4994>]
>>> (mmc_blk_issue_rw_rq+0x230/ 0x9d8)
>>>     [ 6676.678589] [<c02e4994>] (mmc_blk_issue_rw_rq+0x230/ 0x9d8) from
>>> [<c02e52e0>] (mmc_blk_issue_rq+0x1a4/0x468)
>>>     [ 6676.678608] [<c02e52e0>] (mmc_blk_issue_rq+0x1a4/0x468) from
>>> [<c02e5c68>] (mmc_queue_thread+0x88/0x118)
>>>     [ 6676.678632] [<c02e5c68>] (mmc_queue_thread+0x88/0x118) from
>>> [<c004d8b8>] (kthread+0xb4/0xb8)
>>>     [ 6676.678655] [<c004d8b8>] (kthread+0xb4/0xb8) from [<c000e298>]
>>> (ret_from_fork+0x14/0x3c)
>>>     [ 6676.678664] Mem-info:
>>>
>>
>>
>>
>
>
>

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

  reply	other threads:[~2016-09-13 17:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20160910115611epcas5p27310a0c2f05290b5c3642f82c045554e@epcas5p2.samsung.com>
     [not found] ` <9250e22a60af484cbede7a1ba34ada5e@POCITMSXMB04.LntUniverse.com>
     [not found]   ` <003e01d20cb2$a0a007c0$e1e01740$@samsung.com>
2016-09-12  6:12     ` PINTU KUMAR
2016-09-12  6:36       ` Adarsh Sharma
2016-09-13 17:21         ` PINTU KUMAR [this message]
2016-09-21  9:47       ` Ankur Tank
2016-10-02 14:17         ` PINTU KUMAR
2016-10-21 11:18           ` Ankur Tank

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1033312829.427970.1473787297945@mail.yahoo.com \
    --to=pintu_agarwal@yahoo.com \
    --cc=Ankur.Tank@lnttechservices.com \
    --cc=artfri2@gmail.com \
    --cc=eddy.adarsh@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=pintu.k@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox