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

From: abdul <[email-masked]>
Date: Mon, 11 Sep 2017 15:26:13 +0530

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