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

Reply via email to