lkml.org 
[lkml]   [2014]   [Sep]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: mm: BUG in unmap_page_range
    On 09/10/2014 03:09 PM, Hugh Dickins wrote:
    > Thanks for supplying, but the change in inlining means that
    > change_protection_range() and change_protection() are no longer
    > relevant for these traces, we now need to see change_pte_range()
    > instead, to confirm that what I expect are ptes are indeed ptes.
    >
    > If you can include line numbers (objdump -ld) in the disassembly, so
    > much the better, but should be decipherable without. (Or objdump -Sd
    > for source, but I often find that harder to unscramble, can't say why.)

    Here it is. Note that the source includes both of Mel's debug patches.
    For reference, here's one trace of the issue with those patches:

    [ 3114.540976] kernel BUG at include/asm-generic/pgtable.h:724!
    [ 3114.541857] invalid opcode: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
    [ 3114.543112] Dumping ftrace buffer:
    [ 3114.544056] (ftrace buffer empty)
    [ 3114.545000] Modules linked in:
    [ 3114.545717] CPU: 18 PID: 30217 Comm: trinity-c617 Tainted: G W 3.17.0-rc4-next-20140910-sasha-00032-g6825fb5-dirty #1137
    [ 3114.548058] task: ffff880415050000 ti: ffff88076f584000 task.ti: ffff88076f584000
    [ 3114.549284] RIP: 0010:[<ffffffff952e527a>] [<ffffffff952e527a>] change_pte_range+0x4ea/0x4f0
    [ 3114.550028] RSP: 0000:ffff88076f587d68 EFLAGS: 00010246
    [ 3114.550028] RAX: 0000000314625900 RBX: 0000000041218000 RCX: 0000000000000100
    [ 3114.550028] RDX: 0000000314625900 RSI: 0000000041218000 RDI: 0000000314625900
    [ 3114.550028] RBP: ffff88076f587dc8 R08: ffff8802cf973600 R09: 0000000000b50000
    [ 3114.550028] R10: 0000000000032c01 R11: 0000000000000008 R12: ffff8802a81070c0
    [ 3114.550028] R13: 8000000000000025 R14: 0000000041343000 R15: ffffc00000000fff
    [ 3114.550028] FS: 00007fabb91c8700(0000) GS:ffff88025ec00000(0000) knlGS:0000000000000000
    [ 3114.550028] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 3114.550028] CR2: 00007fffdb7678e8 CR3: 0000000713935000 CR4: 00000000000006a0
    [ 3114.550028] DR0: 00000000006f0000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 3114.550028] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000050602
    [ 3114.550028] Stack:
    [ 3114.550028] 0000000000000001 0000000314625900 0000000000000018 ffff8802685f2260
    [ 3114.550028] 0000000016840000 ffff8802cf973600 ffff880616840000 0000000041343000
    [ 3114.550028] ffff880108805048 0000000041005000 0000000041200000 0000000041343000
    [ 3114.550028] Call Trace:
    [ 3114.550028] [<ffffffff952e5534>] change_protection+0x2b4/0x4e0
    [ 3114.550028] [<ffffffff952ff24b>] change_prot_numa+0x1b/0x40
    [ 3114.550028] [<ffffffff951adf16>] task_numa_work+0x1f6/0x330
    [ 3114.550028] [<ffffffff95193de4>] task_work_run+0xc4/0xf0
    [ 3114.550028] [<ffffffff95071477>] do_notify_resume+0x97/0xb0
    [ 3114.550028] [<ffffffff9850f06a>] int_signal+0x12/0x17
    [ 3114.550028] Code: 66 90 48 8b 7d b8 e8 e6 88 22 03 48 8b 45 b0 e9 6f ff ff ff 0f 1f 44 00 00 0f 0b 66 0f 1f 44 00 00 0f 0b 66 0f 1f 44 00 00 0f 0b <0f> 0b 0f 0b 0f 0b 66 66 66 66 90 55 48 89 e5 41 57 49 89 d7 41
    [ 3114.550028] RIP [<ffffffff952e527a>] change_pte_range+0x4ea/0x4f0
    [ 3114.550028] RSP <ffff88076f587d68>

    And the disassembly:

    0000000000000000 <change_pte_range>:
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:70
    0: e8 00 00 00 00 callq 5 <change_pte_range+0x5>
    1: R_X86_64_PC32 __fentry__-0x4
    5: 55 push %rbp
    6: 48 89 e5 mov %rsp,%rbp
    9: 41 57 push %r15
    b: 41 56 push %r14
    d: 49 89 ce mov %rcx,%r14
    10: 41 55 push %r13
    12: 4d 89 c5 mov %r8,%r13
    15: 41 54 push %r12
    17: 49 89 f4 mov %rsi,%r12
    1a: 53 push %rbx
    1b: 48 89 d3 mov %rdx,%rbx
    1e: 48 83 ec 38 sub $0x38,%rsp
    /home/sasha/linux-next/mm/mprotect.c:71
    22: 48 8b 47 40 mov 0x40(%rdi),%rax
    /home/sasha/linux-next/mm/mprotect.c:70
    26: 48 89 7d c8 mov %rdi,-0x38(%rbp)
    lock_pte_protection():
    /home/sasha/linux-next/mm/mprotect.c:53
    2a: 8b 4d 10 mov 0x10(%rbp),%ecx
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:70
    2d: 44 89 4d c4 mov %r9d,-0x3c(%rbp)
    /home/sasha/linux-next/mm/mprotect.c:71
    31: 48 89 45 d0 mov %rax,-0x30(%rbp)
    lock_pte_protection():
    /home/sasha/linux-next/mm/mprotect.c:53
    35: 85 c9 test %ecx,%ecx
    37: 0f 84 6b 03 00 00 je 3a8 <change_pte_range+0x3a8>
    pmd_to_page():
    /home/sasha/linux-next/include/linux/mm.h:1538
    3d: 48 89 f7 mov %rsi,%rdi
    40: 48 81 e7 00 f0 ff ff and $0xfffffffffffff000,%rdi
    47: e8 00 00 00 00 callq 4c <change_pte_range+0x4c>
    48: R_X86_64_PC32 __phys_addr-0x4
    4c: 48 ba 00 00 00 00 00 movabs $0xffffea0000000000,%rdx
    53: ea ff ff
    56: 48 c1 e8 0c shr $0xc,%rax
    spin_lock():
    /home/sasha/linux-next/include/linux/spinlock.h:309
    5a: 48 89 55 b8 mov %rdx,-0x48(%rbp)
    5e: 48 c1 e0 06 shl $0x6,%rax
    62: 4c 8b 7c 10 30 mov 0x30(%rax,%rdx,1),%r15
    67: 4c 89 ff mov %r15,%rdi
    6a: e8 00 00 00 00 callq 6f <change_pte_range+0x6f>
    6b: R_X86_64_PC32 _raw_spin_lock-0x4
    6f: 49 8b 3c 24 mov (%r12),%rdi
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    73: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 7b <change_pte_range+0x7b>
    7a: 00
    76: R_X86_64_PC32 pv_mmu_ops+0x10b
    7b: 48 8b 55 b8 mov -0x48(%rbp),%rdx
    7f: 0f 84 ab 03 00 00 je 430 <change_pte_range+0x430>
    85: ff 14 25 00 00 00 00 callq *0x0
    88: R_X86_64_32S pv_mmu_ops+0x110
    lock_pte_protection():
    /home/sasha/linux-next/mm/mprotect.c:57
    8c: a8 80 test $0x80,%al
    8e: 0f 85 a4 03 00 00 jne 438 <change_pte_range+0x438>
    94: 49 8b 3c 24 mov (%r12),%rdi
    98: 48 85 ff test %rdi,%rdi
    9b: 0f 84 97 03 00 00 je 438 <change_pte_range+0x438>
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    a1: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # a9 <change_pte_range+0xa9>
    a8: 00
    a4: R_X86_64_PC32 pv_mmu_ops+0x10b
    a9: 0f 84 81 03 00 00 je 430 <change_pte_range+0x430>
    af: ff 14 25 00 00 00 00 callq *0x0
    b2: R_X86_64_32S pv_mmu_ops+0x110
    b6: 48 b9 00 f0 ff ff ff movabs $0x3ffffffff000,%rcx
    bd: 3f 00 00
    c0: 48 21 c8 and %rcx,%rax
    c3: 48 89 c7 mov %rax,%rdi
    c6: 48 c1 ef 06 shr $0x6,%rdi
    ca: 48 8b 44 3a 30 mov 0x30(%rdx,%rdi,1),%rax
    cf: 49 8b 3c 24 mov (%r12),%rdi
    d3: 48 89 45 b8 mov %rax,-0x48(%rbp)
    pte_offset_kernel():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:551
    d7: 48 89 d8 mov %rbx,%rax
    da: 48 c1 e8 09 shr $0x9,%rax
    de: 25 f8 0f 00 00 and $0xff8,%eax
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    e3: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # eb <change_pte_range+0xeb>
    ea: 00
    e6: R_X86_64_PC32 pv_mmu_ops+0x10b
    pte_offset_kernel():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:551
    eb: 48 89 c2 mov %rax,%rdx
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    ee: 0f 84 3c 03 00 00 je 430 <change_pte_range+0x430>
    f4: ff 14 25 00 00 00 00 callq *0x0
    f7: R_X86_64_32S pv_mmu_ops+0x110
    spin_lock():
    /home/sasha/linux-next/include/linux/spinlock.h:309
    fb: 48 8b 7d b8 mov -0x48(%rbp),%rdi
    pmd_page_vaddr():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    ff: 49 89 c4 mov %rax,%r12
    pte_offset_kernel():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:551
    102: 48 b8 00 00 00 00 00 movabs $0xffff880000000000,%rax
    109: 88 ff ff
    10c: 48 01 d0 add %rdx,%rax
    10f: 4c 21 e1 and %r12,%rcx
    112: 4c 8d 24 08 lea (%rax,%rcx,1),%r12
    spin_lock():
    /home/sasha/linux-next/include/linux/spinlock.h:309
    116: e8 00 00 00 00 callq 11b <change_pte_range+0x11b>
    117: R_X86_64_PC32 _raw_spin_lock-0x4
    spin_unlock():
    /home/sasha/linux-next/include/linux/spinlock.h:349
    11b: 4c 89 ff mov %r15,%rdi
    11e: e8 00 00 00 00 callq 123 <change_pte_range+0x123>
    11f: R_X86_64_PC32 _raw_spin_unlock-0x4
    arch_enter_lazy_mmu_mode():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:694
    123: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 12b <change_pte_range+0x12b>
    12a: 00
    126: R_X86_64_PC32 pv_mmu_ops+0x133
    12b: 0f 84 a7 03 00 00 je 4d8 <change_pte_range+0x4d8>
    131: ff 14 25 00 00 00 00 callq *0x0
    134: R_X86_64_32S pv_mmu_ops+0x138
    massage_pgprot():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:351
    138: 4c 89 e8 mov %r13,%rax
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:74
    13b: 48 c7 45 b0 00 00 00 movq $0x0,-0x50(%rbp)
    142: 00
    pte_present():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:460
    143: 49 bf ff 0f 00 00 00 movabs $0xffffc00000000fff,%r15
    14a: c0 ff ff
    massage_pgprot():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:351
    14d: 83 e0 01 and $0x1,%eax
    150: 48 89 45 a0 mov %rax,-0x60(%rbp)
    154: e9 fa 00 00 00 jmpq 253 <change_pte_range+0x253>
    159: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:87
    160: 8b 55 10 mov 0x10(%rbp),%edx
    163: 85 d2 test %edx,%edx
    165: 0f 85 85 01 00 00 jne 2f0 <change_pte_range+0x2f0>
    ptep_modify_prot_start():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:490
    16b: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 173 <change_pte_range+0x173>
    172: 00
    16e: R_X86_64_PC32 pv_mmu_ops+0xd3
    173: 0f 84 2f 03 00 00 je 4a8 <change_pte_range+0x4a8>
    179: 48 8b 7d d0 mov -0x30(%rbp),%rdi
    17d: 48 89 de mov %rbx,%rsi
    180: 4c 89 e2 mov %r12,%rdx
    183: ff 14 25 00 00 00 00 callq *0x0
    186: R_X86_64_32S pv_mmu_ops+0xd8
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:89
    18a: 48 89 c2 mov %rax,%rdx
    ptep_modify_prot_start():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:490
    18d: 48 89 c7 mov %rax,%rdi
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:89
    190: 81 e2 01 03 00 00 and $0x301,%edx
    196: 48 81 fa 00 02 00 00 cmp $0x200,%rdx
    19d: 0f 84 bd 02 00 00 je 460 <change_pte_range+0x460>
    pte_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:450
    1a3: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 1ab <change_pte_range+0x1ab>
    1aa: 00
    1a6: R_X86_64_PC32 pv_mmu_ops+0xe3
    1ab: 0f 84 a7 02 00 00 je 458 <change_pte_range+0x458>
    1b1: ff 14 25 00 00 00 00 callq *0x0
    1b4: R_X86_64_32S pv_mmu_ops+0xe8
    pte_modify():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:377
    1b8: 48 be 78 fa ff ff ff movabs $0x3ffffffffa78,%rsi
    1bf: 3f 00 00
    massage_pgprot():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:352
    1c2: 4c 89 ef mov %r13,%rdi
    1c5: 48 23 3d 00 00 00 00 and 0x0(%rip),%rdi # 1cc <change_pte_range+0x1cc>
    1c8: R_X86_64_PC32 __supported_pte_mask-0x4
    pte_modify():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:378
    1cc: 48 ba 87 05 00 00 00 movabs $0xffffc00000000587,%rdx
    1d3: c0 ff ff
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:377
    1d6: 48 21 f0 and %rsi,%rax
    massage_pgprot():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:352
    1d9: 48 83 7d a0 00 cmpq $0x0,-0x60(%rbp)
    1de: 49 0f 44 fd cmove %r13,%rdi
    pte_modify():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:378
    1e2: 48 89 f9 mov %rdi,%rcx
    1e5: 48 21 d1 and %rdx,%rcx
    1e8: 48 09 c1 or %rax,%rcx
    __pte():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:435
    1eb: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 1f3 <change_pte_range+0x1f3>
    1f2: 00
    1ee: R_X86_64_PC32 pv_mmu_ops+0xeb
    pte_modify():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:378
    1f3: 48 89 cf mov %rcx,%rdi
    __pte():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:435
    1f6: 0f 84 a4 02 00 00 je 4a0 <change_pte_range+0x4a0>
    1fc: ff 14 25 00 00 00 00 callq *0x0
    1ff: R_X86_64_32S pv_mmu_ops+0xf0
    203: 48 89 c1 mov %rax,%rcx
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:96
    206: 8b 45 c4 mov -0x3c(%rbp),%eax
    209: 85 c0 test %eax,%eax
    20b: 74 0e je 21b <change_pte_range+0x21b>
    pte_set_flags():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:186 (discriminator 1)
    20d: 48 89 c8 mov %rcx,%rax
    210: 48 83 c8 02 or $0x2,%rax
    214: f6 c1 40 test $0x40,%cl
    217: 48 0f 45 c8 cmovne %rax,%rcx
    ptep_modify_prot_commit():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:503
    21b: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 223 <change_pte_range+0x223>
    222: 00
    21e: R_X86_64_PC32 pv_mmu_ops+0xdb
    223: 0f 84 b7 02 00 00 je 4e0 <change_pte_range+0x4e0>
    229: 48 8b 7d d0 mov -0x30(%rbp),%rdi
    22d: 48 89 de mov %rbx,%rsi
    230: 4c 89 e2 mov %r12,%rdx
    233: ff 14 25 00 00 00 00 callq *0x0
    236: R_X86_64_32S pv_mmu_ops+0xe0
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:128
    23a: 48 83 45 b0 01 addq $0x1,-0x50(%rbp)
    /home/sasha/linux-next/mm/mprotect.c:131
    23f: 48 81 c3 00 10 00 00 add $0x1000,%rbx
    246: 49 83 c4 08 add $0x8,%r12
    24a: 4c 39 f3 cmp %r14,%rbx
    24d: 0f 84 5d 02 00 00 je 4b0 <change_pte_range+0x4b0>
    /home/sasha/linux-next/mm/mprotect.c:82
    253: 49 8b 0c 24 mov (%r12),%rcx
    pte_present():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:460
    257: 48 89 c8 mov %rcx,%rax
    25a: 4c 21 f8 and %r15,%rax
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:83
    25d: a9 01 03 00 00 test $0x301,%eax
    262: 0f 85 f8 fe ff ff jne 160 <change_pte_range+0x160>
    /home/sasha/linux-next/mm/mprotect.c:113
    268: a8 40 test $0x40,%al
    26a: 75 d3 jne 23f <change_pte_range+0x23f>
    pte_swp_soft_dirty():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:885
    26c: a9 01 01 00 00 test $0x101,%eax
    271: 0f 85 71 02 00 00 jne 4e8 <change_pte_range+0x4e8>
    pte_clear_flags():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:193
    277: 48 89 ca mov %rcx,%rdx
    27a: 41 89 c0 mov %eax,%r8d
    27d: 80 e2 7f and $0x7f,%dl
    280: 41 81 e0 80 00 00 00 and $0x80,%r8d
    287: 48 0f 45 ca cmovne %rdx,%rcx
    pte_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:450
    28b: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 293 <change_pte_range+0x293>
    292: 00
    28e: R_X86_64_PC32 pv_mmu_ops+0xe3
    293: 0f 84 bf 01 00 00 je 458 <change_pte_range+0x458>
    299: 48 89 cf mov %rcx,%rdi
    29c: ff 14 25 00 00 00 00 callq *0x0
    29f: R_X86_64_32S pv_mmu_ops+0xe8
    swp_entry():
    /home/sasha/linux-next/include/linux/swapops.h:30
    2a3: 48 89 c1 mov %rax,%rcx
    2a6: 48 c1 e8 0a shr $0xa,%rax
    2aa: 48 d1 e9 shr %rcx
    2ad: 83 e1 1f and $0x1f,%ecx
    2b0: 48 c1 e1 39 shl $0x39,%rcx
    2b4: 48 09 c8 or %rcx,%rax
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:116
    2b7: 48 89 c2 mov %rax,%rdx
    2ba: 48 c1 ea 39 shr $0x39,%rdx
    2be: 48 83 fa 1f cmp $0x1f,%rdx
    2c2: 0f 85 77 ff ff ff jne 23f <change_pte_range+0x23f>
    swp_entry_to_pte():
    /home/sasha/linux-next/include/linux/swapops.h:84
    2c8: 48 c1 e0 0a shl $0xa,%rax
    2cc: 48 89 c1 mov %rax,%rcx
    2cf: 0c bc or $0xbc,%al
    2d1: 48 83 c9 3c or $0x3c,%rcx
    2d5: 45 85 c0 test %r8d,%r8d
    2d8: 48 0f 45 c8 cmovne %rax,%rcx
    set_pte_at():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:524
    2dc: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 2e4 <change_pte_range+0x2e4>
    2e3: 00
    2df: R_X86_64_PC32 pv_mmu_ops+0x9b
    2e4: 0f 85 a4 00 00 00 jne 38e <change_pte_range+0x38e>
    2ea: 0f 0b ud2
    2ec: 0f 1f 40 00 nopl 0x0(%rax)
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:103
    2f0: 48 8b 7d c8 mov -0x38(%rbp),%rdi
    2f4: 48 89 ca mov %rcx,%rdx
    2f7: 48 89 de mov %rbx,%rsi
    2fa: 48 89 4d a8 mov %rcx,-0x58(%rbp)
    2fe: e8 00 00 00 00 callq 303 <change_pte_range+0x303>
    2ff: R_X86_64_PC32 vm_normal_page-0x4
    /home/sasha/linux-next/mm/mprotect.c:104
    303: 48 85 c0 test %rax,%rax
    306: 0f 84 33 ff ff ff je 23f <change_pte_range+0x23f>
    /home/sasha/linux-next/mm/mprotect.c:104 (discriminator 1)
    30c: 48 8b 40 08 mov 0x8(%rax),%rax
    310: 83 e0 03 and $0x3,%eax
    313: 48 83 f8 03 cmp $0x3,%rax
    317: 0f 84 22 ff ff ff je 23f <change_pte_range+0x23f>
    /home/sasha/linux-next/mm/mprotect.c:105
    31d: 48 8b 4d a8 mov -0x58(%rbp),%rcx
    321: 81 e1 01 03 00 00 and $0x301,%ecx
    327: 48 81 f9 00 02 00 00 cmp $0x200,%rcx
    32e: 0f 84 0b ff ff ff je 23f <change_pte_range+0x23f>
    pte_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:450
    334: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 33c <change_pte_range+0x33c>
    33b: 00
    337: R_X86_64_PC32 pv_mmu_ops+0xe3
    ptep_set_numa():
    /home/sasha/linux-next/include/asm-generic/pgtable.h:740
    33c: 49 8b 3c 24 mov (%r12),%rdi
    pte_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:450
    340: 0f 84 12 01 00 00 je 458 <change_pte_range+0x458>
    346: ff 14 25 00 00 00 00 callq *0x0
    349: R_X86_64_32S pv_mmu_ops+0xe8
    pte_mknuma():
    /home/sasha/linux-next/include/asm-generic/pgtable.h:724
    34d: a8 01 test $0x1,%al
    34f: 0f 84 95 01 00 00 je 4ea <change_pte_range+0x4ea>
    /home/sasha/linux-next/include/asm-generic/pgtable.h:727
    355: f6 c4 01 test $0x1,%ah
    358: 0f 85 8e 01 00 00 jne 4ec <change_pte_range+0x4ec>
    /home/sasha/linux-next/include/asm-generic/pgtable.h:729
    35e: 48 83 e0 fe and $0xfffffffffffffffe,%rax
    /home/sasha/linux-next/include/asm-generic/pgtable.h:730
    362: 80 cc 02 or $0x2,%ah
    __pte():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:435
    365: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 36d <change_pte_range+0x36d>
    36c: 00
    368: R_X86_64_PC32 pv_mmu_ops+0xeb
    pte_mknuma():
    /home/sasha/linux-next/include/asm-generic/pgtable.h:730
    36d: 48 89 c7 mov %rax,%rdi
    __pte():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:435
    370: 0f 84 2a 01 00 00 je 4a0 <change_pte_range+0x4a0>
    376: ff 14 25 00 00 00 00 callq *0x0
    379: R_X86_64_32S pv_mmu_ops+0xf0
    set_pte_at():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:524
    37d: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 385 <change_pte_range+0x385>
    384: 00
    380: R_X86_64_PC32 pv_mmu_ops+0x9b
    pte_mknuma():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:435
    385: 48 89 c1 mov %rax,%rcx
    set_pte_at():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:524
    388: 0f 84 5c ff ff ff je 2ea <change_pte_range+0x2ea>
    38e: 48 8b 7d d0 mov -0x30(%rbp),%rdi
    392: 48 89 de mov %rbx,%rsi
    395: 4c 89 e2 mov %r12,%rdx
    398: ff 14 25 00 00 00 00 callq *0x0
    39b: R_X86_64_32S pv_mmu_ops+0xa0
    39f: e9 96 fe ff ff jmpq 23a <change_pte_range+0x23a>
    3a4: 0f 1f 40 00 nopl 0x0(%rax)
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    3a8: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 3b0 <change_pte_range+0x3b0>
    3af: 00
    3ab: R_X86_64_PC32 pv_mmu_ops+0x10b
    3b0: 48 8b 3e mov (%rsi),%rdi
    3b3: 74 7b je 430 <change_pte_range+0x430>
    3b5: ff 14 25 00 00 00 00 callq *0x0
    3b8: R_X86_64_32S pv_mmu_ops+0x110
    3bc: 48 ba 00 f0 ff ff ff movabs $0x3ffffffff000,%rdx
    3c3: 3f 00 00
    3c6: 48 21 d0 and %rdx,%rax
    3c9: 48 89 c7 mov %rax,%rdi
    3cc: 48 b8 00 00 00 00 00 movabs $0xffffea0000000000,%rax
    3d3: ea ff ff
    3d6: 48 c1 ef 06 shr $0x6,%rdi
    3da: 48 8b 44 07 30 mov 0x30(%rdi,%rax,1),%rax
    3df: 48 8b 3e mov (%rsi),%rdi
    3e2: 48 89 45 b8 mov %rax,-0x48(%rbp)
    pte_offset_kernel():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:551
    3e6: 48 89 d8 mov %rbx,%rax
    3e9: 48 c1 e8 09 shr $0x9,%rax
    3ed: 25 f8 0f 00 00 and $0xff8,%eax
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    3f2: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 3fa <change_pte_range+0x3fa>
    3f9: 00
    3f5: R_X86_64_PC32 pv_mmu_ops+0x10b
    pte_offset_kernel():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:551
    3fa: 48 89 c1 mov %rax,%rcx
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    3fd: 74 31 je 430 <change_pte_range+0x430>
    3ff: ff 14 25 00 00 00 00 callq *0x0
    402: R_X86_64_32S pv_mmu_ops+0x110
    spin_lock():
    /home/sasha/linux-next/include/linux/spinlock.h:309
    406: 48 8b 7d b8 mov -0x48(%rbp),%rdi
    pmd_page_vaddr():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    40a: 49 89 c4 mov %rax,%r12
    pte_offset_kernel():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:551
    40d: 48 b8 00 00 00 00 00 movabs $0xffff880000000000,%rax
    414: 88 ff ff
    417: 48 01 c8 add %rcx,%rax
    41a: 4c 21 e2 and %r12,%rdx
    41d: 4c 8d 24 10 lea (%rax,%rdx,1),%r12
    spin_lock():
    /home/sasha/linux-next/include/linux/spinlock.h:309
    421: e8 00 00 00 00 callq 426 <change_pte_range+0x426>
    422: R_X86_64_PC32 _raw_spin_lock-0x4
    426: e9 f8 fc ff ff jmpq 123 <change_pte_range+0x123>
    42b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
    pmd_val():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:571
    430: 0f 0b ud2
    432: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
    spin_unlock():
    /home/sasha/linux-next/include/linux/spinlock.h:349
    438: 4c 89 ff mov %r15,%rdi
    43b: e8 00 00 00 00 callq 440 <change_pte_range+0x440>
    43c: R_X86_64_PC32 _raw_spin_unlock-0x4
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:78
    440: 31 c0 xor %eax,%eax
    /home/sasha/linux-next/mm/mprotect.c:136
    442: 48 83 c4 38 add $0x38,%rsp
    446: 5b pop %rbx
    447: 41 5c pop %r12
    449: 41 5d pop %r13
    44b: 41 5e pop %r14
    44d: 41 5f pop %r15
    44f: 5d pop %rbp
    450: c3 retq
    451: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
    pte_to_swp_entry():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:450
    458: 0f 0b ud2
    45a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
    pte_val():
    460: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 468 <change_pte_range+0x468>
    467: 00
    463: R_X86_64_PC32 pv_mmu_ops+0xe3
    468: 74 ee je 458 <change_pte_range+0x458>
    46a: 48 89 c7 mov %rax,%rdi
    46d: ff 14 25 00 00 00 00 callq *0x0
    470: R_X86_64_32S pv_mmu_ops+0xe8
    pte_mknonnuma():
    /home/sasha/linux-next/include/asm-generic/pgtable.h:701
    474: 80 e4 fd and $0xfd,%ah
    /home/sasha/linux-next/include/asm-generic/pgtable.h:702
    477: 48 83 c8 21 or $0x21,%rax
    __pte():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:435
    47b: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 483 <change_pte_range+0x483>
    482: 00
    47e: R_X86_64_PC32 pv_mmu_ops+0xeb
    pte_mknonnuma():
    /home/sasha/linux-next/include/asm-generic/pgtable.h:702
    483: 48 89 c7 mov %rax,%rdi
    __pte():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:435
    486: 74 18 je 4a0 <change_pte_range+0x4a0>
    488: ff 14 25 00 00 00 00 callq *0x0
    48b: R_X86_64_32S pv_mmu_ops+0xf0
    48f: 48 89 c7 mov %rax,%rdi
    492: e9 0c fd ff ff jmpq 1a3 <change_pte_range+0x1a3>
    497: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1)
    49e: 00 00
    4a0: 0f 0b ud2
    4a2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
    ptep_modify_prot_start():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:490
    4a8: 0f 0b ud2
    4aa: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
    arch_leave_lazy_mmu_mode():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:699
    4b0: 48 83 3d 00 00 00 00 cmpq $0x0,0x0(%rip) # 4b8 <change_pte_range+0x4b8>
    4b7: 00
    4b3: R_X86_64_PC32 pv_mmu_ops+0x13b
    4b8: 74 34 je 4ee <change_pte_range+0x4ee>
    4ba: ff 14 25 00 00 00 00 callq *0x0
    4bd: R_X86_64_32S pv_mmu_ops+0x140
    spin_unlock():
    /home/sasha/linux-next/include/linux/spinlock.h:349
    4c1: 48 8b 7d b8 mov -0x48(%rbp),%rdi
    4c5: e8 00 00 00 00 callq 4ca <change_pte_range+0x4ca>
    4c6: R_X86_64_PC32 _raw_spin_unlock-0x4
    change_pte_range():
    /home/sasha/linux-next/mm/mprotect.c:135
    4ca: 48 8b 45 b0 mov -0x50(%rbp),%rax
    4ce: e9 6f ff ff ff jmpq 442 <change_pte_range+0x442>
    4d3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
    arch_enter_lazy_mmu_mode():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:694
    4d8: 0f 0b ud2
    4da: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
    ptep_modify_prot_commit():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:503
    4e0: 0f 0b ud2
    4e2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
    pte_to_swp_entry():
    /home/sasha/linux-next/./arch/x86/include/asm/pgtable.h:885
    4e8: 0f 0b ud2
    ptep_set_numa():
    /home/sasha/linux-next/include/asm-generic/pgtable.h:724
    4ea: 0f 0b ud2
    /home/sasha/linux-next/include/asm-generic/pgtable.h:727
    4ec: 0f 0b ud2
    arch_leave_lazy_mmu_mode():
    /home/sasha/linux-next/./arch/x86/include/asm/paravirt.h:699
    4ee: 0f 0b ud2


    Thanks,
    Sasha


    \
     
     \ /
      Last update: 2014-09-10 23:21    [W:3.032 / U:0.308 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site