a question about unmapped in page migrate

From: zhong jiang
Date: Sat Jun 25 2016 - 04:02:58 EST


The kernel verison is 3.10 .

recently, I hit a problem in the unmap_and_move_huge_page, and it have been proved that it can be
solved in commit 7964b385c0906f ("mm: unmapped page migration avoid unmap+remap overhead").
but , the question is that the debug show mapcount is -1 and mapping is NULL. before unmap the page,
the page should be locked, I don not think the mapping can suddenly turn into NULL, and the changelog
just describe the overhead. The call trace is following.

#9 [ffff8825fcedbb40] page_fault at ffffffff81607508
[exception RIP: mutex_lock+21]
RIP: ffffffff816037b5 RSP: ffff8825fcedbbf0 RFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000038 RCX: ffff8825fcedbfd8
RDX: 0000000000000000 RSI: 0000000000000301 RDI: 0000000000000038
RBP: ffff8825fcedbbf8 R8: ffffea20aa670020 R9: ffff880002a42c20
R10: 0000000000000044 R11: ffffffff812d26d9 R12: 0000000000000e00
R13: ffffea20aa688000 R14: 0000000000000000 R15: ffffea04a89e0000
ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0000
#10 [ffff8825fcedbc00] try_to_unmap_file at ffffffff8118c65c
#11 [ffff8825fcedbca8] try_to_unmap at ffffffff8118d84d
#12 [ffff8825fcedbcc0] migrate_pages at ffffffff811b0d68
#13 [ffff8825fcedbd68] __offline_pages.constprop.20 at ffffffff815f185e
#14 [ffff8825fcedbe28] offline_pages at ffffffff811aed11

I wan to know the mapping how to turn into NULL during the file page unmap. or my understanding is
what is the problem.

Thanks
zhong jiang