Null pointer dereference when using hugepages with the kernel

This document (7012445) is provided subject to the disclaimer at the end of this document.


SUSE Linux Enterprise Server 10 Service Pack 4


Due to a change in the handling of a pointer in the kernel, it is possible to encounter the following NULL pointer dereference when using hugepages:

kernel: Unable to handle kernel NULL pointer dereference at 0000000000000000 RIP: 
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 #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: 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

The process attempting to use hugepages (such as Oracle) will hang after the above Oops is encountered.


This issue has been fixed in SLES10 SP4 kernel version

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.


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

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Join Our Community

Support Resources

Learn how to get the most from the technical support you receive with your SUSE Subscription, Premium Support, Academic Program, or Partner Program.

SUSE Customer Support Quick Reference Guide SUSE Technical Support Handbook Update Advisories
Support FAQ

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.

Go to Customer Center