Thread (5 messages) flat view 5 messages, 2 authors, 2017-10-03

Re: [linux-next] [bisected a4615d11] Memory DLPAR triggers WARN_ONCE() in mm/page_vma_mapped.c

From: Zi Yan <hidden>
Date: 2017-09-11 14:53:27
Also in: linux-next
Subsystem: memory management, memory management - rmap (reverse mapping), the rest · Maintainers: Andrew Morton, David Hildenbrand, Lorenzo Stoakes, Linus Torvalds

Hi Abdul,

Can you try this patch below? I think I missed that pmd entries
can be zapped, so the WARN_ONCE is unnecessary.

Thanks.
diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c
index 6a03946469a9..eb462e7db0a9 100644
--- a/mm/page_vma_mapped.c
+++ b/mm/page_vma_mapped.c
@@ -167,8 +167,7 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
                                                return not_found(pvmw);
                                        return true;
                                }
-                       } else
-                               WARN_ONCE(1, "Non present huge pmd without pmd migration enabled!");
+                       }
                        return not_found(pvmw);
                } else {
                        /* THP pmd was split under us: handle on pte level */

--
Best Regards
Yan Zi

On 11 Sep 2017, at 5:56, abdul wrote:
Hi,

Memory DLPAR operation on PowerVM booted withnext-20170907, results in
below warning message.

Machine Type: Power 8 PowerVM LPAR
Kernel version : 4.13.0-next-20170907
gcc: 5.2.1
config : attached

Steps to recreate:
----------------------
Perform dlpar memory add/remove in a loop using 'drmgr' command

$ drmgr -c mem -d 5 -w 30 -r
$ drmgr -c mem -d 5 -w 30 -a

after few iterations of add / remove dmes shows below warning


dmesg logs:
------------------
Non present huge pmd without pmd migration enabled!
 ------------[ cut here ]------------
 WARNING: CPU: 14 PID: 5110 at mm/page_vma_mapped.c:171
page_vma_mapped_walk+0x9a8/0xa10
 Modules linked in: rpadlpar_io(E) rpaphp(E) xt_addrtype(E)
xt_conntrack(E) ipt_MASQUERADE(E) nf_nat_masquerade_ipv4(E)
iptable_nat(E) nf_conntrack_ipv4(E) nf_defrag_ipv4(E) nf_nat_ipv4(E)
iptable_filter(E) ip_tables(E) x_tables(E) nf_nat(E) nf_conntrack(E)
bridge(E) stp(E) llc(E) dm_thin_pool(E) dm_persistent_data(E)
dm_bio_prison(E) dm_bufio(E) libcrc32c(E) pseries_rng(E) rtc_generic(E)
vmx_crypto(E) autofs4(E)
 CPU: 14 PID: 5110 Comm: stress Tainted: G            E
4.13.0-next-20170907-autotest #1
 task: c000000760755900 task.stack: c0000007749b4000
 NIP:  c000000000316078 LR: c000000000316074 CTR: c000000000c244b0
 REGS: c0000007749b7160 TRAP: 0700   Tainted: G            E
(4.13.0-next-20170907-autotest)
 MSR:  8000000000029033 <SF,EE,ME,IR,DR,RI,LE>  CR: 28242282  XER:
20000000
 CFAR: c000000000182064 SOFTE: 1
 GPR00: c000000000316074 c0000007749b73e0 c000000001599900
0000000000000033
 GPR04: 0000000000000000 0000000000000000 6c62616e65206e6f
c000000001769900
 GPR08: 000000077edd0000 0000000000000000 0000000000000000
c08000049d002386
 GPR12: 0000000000002200 c00000000e749300 f000000001274020
c00000077ff5e100
 GPR16: c00000077ff54600 c00000077ff64600 f000000001274000
c0000007749b7650
 GPR20: 0000000000000000 c0000000032ec800 c0000007735bf5c8
000000007ffdab00
 GPR24: 000000007ffdabff c00000000173e970 0000000000000001
c0000007605b0000
 GPR28: f000000001274000 c0000007605b0064 f000000001274000
c0000007749b74b0
 NIP [c000000000316078] page_vma_mapped_walk+0x9a8/0xa10
 LR [c000000000316074] page_vma_mapped_walk+0x9a4/0xa10
 Call Trace:
 [c0000007749b73e0] [c000000000316074] page_vma_mapped_walk+0x9a4/0xa10
(unreliable)
 [c0000007749b7490] [c00000000031792c] page_referenced_one+0xcc/0x250
 [c0000007749b7520] [c00000000031841c] rmap_walk_anon+0x15c/0x380
 [c0000007749b7590] [c00000000031afdc] page_referenced+0x1bc/0x250
 [c0000007749b7620] [c0000000002d0ebc] shrink_active_list+0x24c/0x5a0
 [c0000007749b7720] [c0000000002d1850] shrink_node_memcg+0x640/0x790
 [c0000007749b7820] [c0000000002d1ad8] shrink_node+0x138/0x410
 [c0000007749b78e0] [c0000000002d1ec8] do_try_to_free_pages+0x118/0x490
 [c0000007749b7970] [c0000000002d2350] try_to_free_pages+0x110/0x2b0
 [c0000007749b7a00] [c0000000002b8ab4] __alloc_pages_nodemask
+0x724/0x1120
 [c0000007749b7bf0] [c000000000342c78] alloc_pages_vma+0xb8/0x290
 [c0000007749b7c60] [c0000000003075b0] __handle_mm_fault+0x1150/0x1ad0
 [c0000007749b7d40] [c000000000308058] handle_mm_fault+0x128/0x210
 [c0000007749b7d80] [c0000000000671f8] __do_page_fault+0x218/0x8e0
 [c0000007749b7e30] [c00000000000a4a4] handle_page_fault+0x18/0x38
 Instruction dump:
 2fa80000 409e0044 3cc2fff5 8926743d 2f890000 409ef6ec 3c62ff91 39200001
 3863ce18 9926743d 4be6bfa5 60000000 <0fe00000> 4bfff6cc 7c0004ac
39400000
 ---[ end trace c9b04ac31031ebc8 ]---


WARN_ONCE() was introduced by commit a4615d115 ( mm: thp: enable thp
migration in generic path)


Regard's
Abdul Haleem
IBM Linux Technology Center

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help