Null pointer dereference when using hugepages with the 2.6.16.60-0.101.1 kernel
This document (7012445) is provided subject to the disclaimer at the end of this document.
Environment
Situation
kernel: Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP:The process attempting to use hugepages (such as Oracle) will hang after the above Oops is encountered.
kernel: <ffffffff801d4358>{hugetlbfs_set_page_dirty+4}
kernel: PGD 0
kernel: Oops: 0002 [1] SMP
kernel: last sysfs file: /block/sda/sda1/stat
kernel: CPU 0
kernel: Modules linked in: oracleasm qla2xxx firmware_class qla2xxx_conf intermodule ...
kernel: Pid: 18790, comm: oracle Tainted: G U 2.6.16.60-0.101.1-smp #1
kernel: RIP: 0010:[<ffffffff801d4358>] <ffffffff801d4358>{hugetlbfs_set_page_dirty+4}
kernel: RSP: 0018:ffff8102f5d19b70 EFLAGS: 00010282
kernel: RAX: 0000000000000000 RBX: 0000000339a000e7 RCX: 000000000000003f
kernel: RDX: ffff8107e2dfa170 RSI: 0000000000000800 RDI: ffff8107ef49b000
kernel: RBP: ffff8107e09ebac0 R08: 000000000a789000 R09: 0000000000000004
kernel: R10: 0000000000000002 R11: ffffffff801d4354 R12: ffff8107ef49b000
kernel: R13: 0000000060000000 R14: ffff810303938368 R15: 0000000060000000
kernel: FS: 0000000000000000(0000) GS:ffffffff803e1000(0000) knlGS:0000000000000000
kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
kernel: CR2: 0000000000000000 CR3: 00000002f5d39000 CR4: 00000000000006e0
kernel: Process oracle (pid: 18790, threadinfo ffff8102f5d18000, task ffff8102e85d07d0)
kernel: Stack: ffffffff8017ca08 0000000060400000 00000002dc915045 0000000060000000
kernel: ffff8107ee03fc98 00000000f6b7a000 ffff8101000345a0 ffff8102f5d00fa0
kernel: ffffffff8016fdf6 0000000000000000
kernel: Call Trace: <ffffffff8017ca08>{unmap_hugepage_range+238}
kernel: <ffffffff8016fdf6>{unmap_vmas+285} <ffffffff801736a7>{exit_mmap+125}
kernel: <ffffffff801327df>{mmput+47} <ffffffff8019222b>{flush_old_exec+2301}
kernel: <ffffffff80188821>{vfs_read+325} <ffffffff801b7b9d>{load_elf_binary+1138}
kernel: <ffffffff80191367>{search_binary_handler+196} <ffffffff80193379>{do_execve+421}
kernel: <ffffffff801099c0>{sys_execve+60} <ffffffff8010b1ef>{stub_execve+103}
kernel:
kernel: Code: f0 0f ba 28 04 31 c0 c3 48 89 c8 48 c7 c1 df 4b 1d 80 48 89
kernel: RIP <ffffffff801d4358>{hugetlbfs_set_page_dirty+4} RSP <ffff8102f5d19b70>
kernel: CR2: 0000000000000000
Resolution
The problem can also be worked around by disabling hugepages through setting "vm.nr_hugepages = 0" in /etc/sysctl.conf (and ensure boot.sysctl is turned on).
A reboot is required in both resolution methods.
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7012445
- Creation Date: 20-May-2013
- Modified Date:03-Mar-2020
-
- SUSE Linux Enterprise Server
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback@suse.com