![]() | Oracle System Handbook - ISO 7.0 May 2018 Internal/Partner Edition | ||
|
|
![]() |
||||||||||||
Solution Type Technical Instruction Sure Solution 1003085.1 : Solaris[TM] Operating System: How to force a kernel core dump on an x86 or x64 system
PreviouslyPublishedAs 204226 Applies to:Solaris Operating System - Version 8 2/04 U8 and laterSun Server X3-2 - Version All Versions to All Versions [Release All Releases] All Platforms GoalThis document provides instructions on how to configure and initiate forced crash dumps (kernel core dumps) in x86 Solaris[TM]. This is usually performed in order to collect information for troubleshooting system hangs. Two methods for generating a forced crash dump on Solaris x86 are covered:
It is beyond the scope of this document to recommend when to enable or use either of these methods for forcing a crash dump - such direction would generally be provided by Oracle Customer Support, taking in to consideration your operating environment and specific troubleshooting requirements. To discuss this information further with Oracle experts and industry peers, we encourage you to review, join or start a discussion in the My Oracle Support Community - Sun x86 Systems
SolutionSolaris Kernel Debugger forced crash dumpsSolaris ConfigurationRequires booting the system with the kernel debugger using the method appropriate for the version of Solaris installed:
See 'x86: How to Boot a System With the Kernel Debugger in the GRUB Boot Environment (kmdb)'
Search for 'How to Boot a System With the Kernel Debugger in the GRUB Boot Environment' at http://docs.oracle.com/, then look for relevent 'System Administration Guide: Basic Administration'
Initiating The Crash Dump
If you invoke the kernel debugger when the operating system console is set to a text or VGA graphics display, for example from a keyboard and monitor attached to the system, or from an ILOM Java Remote GUI Console session, it might not be possible for the system to display the debugger prompt, giving the appearance the system has frozen.
This is normal - the kernel debugger suspends the operating system including GUI applications and window managers. The above command can still be typed to generate a crash dump (you just wont see any of the output) but it is preferable to use a serial port as console where available.
Console Break SequenceThe break sequence required for invoking the kernel debugger will vary between systems, depending on the platform, console type, and other configuration (see the man page for kbd(1)). The following are the default console break sequences in Solaris.
Non-Maskable Interrupt (NMI) forced crash dumpsSolaris ConfigurationIf you have an X86 system which supports NMI ( Non Maskable Interrupts)
echo "apic_panic_on_nmi/X" | mdb -k This variable can also be set, which will avoid the need for a reboot (but please do add the settings to /etc/system to ensure a reboot doesn't clear the setting) with: echo "apic_panic_on_nmi/W1" | mdb -kw The above two mdb commands will both work regardless of the module which provides the variable ... The two main Entries that define NMI behaviour;
Where 'X' is either 'pcplusmp' or 'apix' With regard to having both entries in /etc/system, apic_kmdb_on_nmi=1 will take precedence over apic_panic_on_nmi=1 So if both are defined, it will not generate a corefile but to enter the debugger, which would require manual actions are taken to force this via the Kernel Debugger, so if you only want to capture a coredump just use one value, X:apic_panic_on_nmi=1. Also Note directions above, in regard to viewing the Debugger. Initiating The Crash DumpTo generate the Non-Maskable Interrupt and panic the system, one or more of the following are commonly available on Sun Oracle X64 servers.
ipmitool -H <SP IP Addr> -U root chassis power diag
set /SP/diag generate_host_nmi=true or set /HOST generate_host_nmi=true depending on your platform (cd and show will tell you which) NOTE: Not all servers will have this ILOM object. If you get an message similar to: set: No such property <...> generate_host_nmi normal operating system procedures for creating a kernel coredump should be followed instead.
Remote Control -> Diagnostics -> Generate NMI
Refer to the Service and Diagnostic documentation of your platform for confirmation on how NMI can be initiated.
panic[cpu13]/thread=fffffe8000c99c60: pcplusmp: NMI received fffffe8000c99a10 pcplusmp:apic_nmi_intr+58 () fffffe8000c99a30 unix:av_dispatch_nmivect+1f () fffffe8000c99a40 unix:nmiint+17e () fffffe8000c99b50 acpica:AcpiOsReadPort+d6 () fffffe8000c99b70 unix:cpu_acpi_read_port+11 () fffffe8000c99be0 unix:acpi_cpu_cstate+2d7 () fffffe8000c99c10 unix:cpu_acpi_idle+ac () fffffe8000c99c20 unix:cpu_idle_adaptive+13 () fffffe8000c99c40 unix:idle+89 () fffffe8000c99c50 unix:thread_start+8 () syncing file systems... 2 done dumping to /dev/dsk/c0t0d0s1, offset 108593152, content: kernel 0:04 100% done 100% done: 268707 pages dumped, dump succeeded rebooting...
References<NOTE:1004506.1> - How to Force a Crash Dump When the Solaris Operating System is HungAttachments This solution has no attachment |
||||||||||||
|