+ mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create.patch added to -mm tree

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

 



The patch titled
     Subject: mm: memcg: add __GFP_NOWARN in __memcg_schedule_kmem_cache_create()
has been added to the -mm tree.  Its filename is
     mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create.patch

This patch should soon appear at
    http://ozlabs.org/~akpm/mmots/broken-out/mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create.patch
and later at
    http://ozlabs.org/~akpm/mmotm/broken-out/mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create.patch

Before you just go and hit "reply", please:
   a) Consider who else should be cc'ed
   b) Prefer to cc a suitable mailing list as well
   c) Ideally: find the original patch on the mailing list and do a
      reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***

The -mm tree is included into linux-next and is updated
there every 3-4 working days

------------------------------------------------------
From: Minchan Kim <minchan@xxxxxxxxxx>
Subject: mm: memcg: add __GFP_NOWARN in __memcg_schedule_kmem_cache_create()

If there is heavy memory pressure, page allocation with __GFP_NOWAIT fails
easily although it's order-0 request.  I got below warning 9 times for
normal boot.

[   17.072747] c0 0      <snip >: page allocation failure: order:0, mode:0x2200000(GFP_NOWAIT|__GFP_NOTRACK)
< snip >
[   17.072789] c0 0      Call trace:
[   17.072803] c0 0      [<ffffff8009914da4>] dump_backtrace+0x0/0x4
[   17.072813] c0 0      [<ffffff80086bfb5c>] dump_stack+0xa4/0xc0
[   17.072822] c0 0      [<ffffff800831a4f8>] warn_alloc+0xd4/0x15c
[   17.072829] c0 0      [<ffffff8008318c3c>] __alloc_pages_nodemask+0xf88/0x10fc
[   17.072838] c0 0      [<ffffff8008392b34>] alloc_slab_page+0x40/0x18c
[   17.072843] c0 0      [<ffffff8008392acc>] new_slab+0x2b8/0x2e0
[   17.072849] c0 0      [<ffffff800839220c>] ___slab_alloc+0x25c/0x464
[   17.072858] c0 0      [<ffffff8008393dd0>] __kmalloc+0x394/0x498
[   17.072865] c0 0      [<ffffff80083a658c>] memcg_kmem_get_cache+0x114/0x2b8
[   17.072870] c0 0      [<ffffff8008392f38>] kmem_cache_alloc+0x98/0x3e8
[   17.072878] c0 0      [<ffffff8008370be8>] mmap_region+0x3bc/0x8c0
[   17.072884] c0 0      [<ffffff80083707fc>] do_mmap+0x40c/0x43c
[   17.072890] c0 0      [<ffffff8008343598>] vm_mmap_pgoff+0x15c/0x1e4
[   17.072898] c0 0      [<ffffff800814be28>] sys_mmap+0xb0/0xc8
[   17.072904] c0 0      [<ffffff8008083730>] el0_svc_naked+0x24/0x28
[   17.072908] c0 0      Mem-Info:
[   17.072920] c0 0      active_anon:17124 inactive_anon:193 isolated_anon:0
[   17.072920] c0 0       active_file:7898 inactive_file:712955 isolated_file:55
[   17.072920] c0 0       unevictable:0 dirty:27 writeback:18 unstable:0
[   17.072920] c0 0       slab_reclaimable:12250 slab_unreclaimable:23334
[   17.072920] c0 0       mapped:19310 shmem:212 pagetables:816 bounce:0
[   17.072920] c0 0       free:36561 free_pcp:1205 free_cma:35615
[   17.072933] c0 0      Node 0 active_anon:68496kB inactive_anon:772kB active_file:31592kB inactive_file:2851820kB unevictable:0kB isolated(anon):0kB isolated(file):220kB mapped:77240kB dirty:108kB writeback:72kB shmem:848kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
[   17.072945] c0 0      DMA free:142188kB min:3056kB low:3820kB high:4584kB active_anon:10052kB inactive_anon:12kB active_file:312kB inactive_file:1412620kB unevictable:0kB writepending:0kB present:1781412kB managed:1604728kB mlocked:0kB slab_reclaimable:3592kB slab_unreclaimable:876kB kernel_stack:400kB pagetables:52kB bounce:0kB free_pcp:1436kB local_pcp:124kB free_cma:142492kB
[   17.072949] c0 0      lowmem_reserve[]: 0 1842 1842
[   17.072966] c0 0      Normal free:4056kB min:4172kB low:5212kB high:6252kB active_anon:58376kB inactive_anon:760kB active_file:31348kB inactive_file:1439040kB unevictable:0kB writepending:180kB present:2000636kB managed:1923688kB mlocked:0kB slab_reclaimable:45408kB slab_unreclaimable:92460kB kernel_stack:9680kB pagetables:3212kB bounce:0kB free_pcp:3392kB local_pcp:688kB free_cma:0kB
[   17.072971] c0 0      lowmem_reserve[]: 0 0 0
[   17.072982] c0 0      DMA: 0*4kB 0*8kB 1*16kB (C) 0*32kB 0*64kB 0*128kB 1*256kB (C) 1*512kB (C) 0*1024kB 1*2048kB (C) 34*4096kB (C) = 142096kB
[   17.073024] c0 0      Normal: 228*4kB (UMEH) 172*8kB (UMH) 23*16kB (UH) 24*32kB (H) 5*64kB (H) 1*128kB (H) 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 3872kB
[   17.073069] c0 0      721350 total pagecache pages
[   17.073073] c0 0      0 pages in swap cache
[   17.073078] c0 0      Swap cache stats: add 0, delete 0, find 0/0
[   17.073081] c0 0      Free swap  = 0kB
[   17.073085] c0 0      Total swap = 0kB
[   17.073089] c0 0      945512 pages RAM
[   17.073093] c0 0      0 pages HighMem/MovableOnly
[   17.073097] c0 0      63408 pages reserved
[   17.073100] c0 0      51200 pages cma reserved

__memcg_schedule_kmem_cache_create tries to create a shadow slab cache and
the worker allocation failure is not really critical because we will retry
on the next kmem charge.  We might miss some charges but that shouldn't be
critical.  The excessive allocation failure report is not very helpful.

[mhocko@xxxxxxxxxx: changelog update]
Link: http://lkml.kernel.org/r/20180418022912.248417-1-minchan@xxxxxxxxxx
Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx>
Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>
Reviewed-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxxxxx>
Cc: Vladimir Davydov <vdavydov.dev@xxxxxxxxx>
Cc: Minchan Kim <minchan@xxxxxxxxxx>
Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---

 mm/memcontrol.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN mm/memcontrol.c~mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create mm/memcontrol.c
--- a/mm/memcontrol.c~mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create
+++ a/mm/memcontrol.c
@@ -2192,7 +2192,7 @@ static void __memcg_schedule_kmem_cache_
 {
 	struct memcg_kmem_cache_create_work *cw;
 
-	cw = kmalloc(sizeof(*cw), GFP_NOWAIT);
+	cw = kmalloc(sizeof(*cw), GFP_NOWAIT | __GFP_NOWARN);
 	if (!cw)
 		return;
 
_

Patches currently in -mm which might be from minchan@xxxxxxxxxx are

mm-memcg-add-__gfp_nowarn-in-__memcg_schedule_kmem_cache_create.patch
zram-correct-flag-name-of-zram_access.patch
zram-mark-incompressible-page-as-zram_huge.patch
zram-record-accessed-second.patch
zram-introduce-zram-memory-tracking.patch

--
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux