Lines Matching defs:panic

30  * When the operating system detects that it is in an invalid state, a panic
33 * a system panic: recording information about the panic in memory (and thus
36 * system to be in one of four states with respect to the panic code:
38 * CALM - the state of the system prior to any thread initiating a panic
41 * a system panic records information about the cause of the panic
51 * The panic code itself must be re-entrant because actions taken during any
52 * state may lead to another system panic. Additionally, any Solaris
53 * thread may initiate a panic at any time, and so we must have synchronization
55 * The panic code makes use of a special locking primitive, a trigger, to
58 * each transition between the four states. When a thread enters the panic
64 * presumes a panic is underway and simply spins. Unfortunately, since we
67 * There are two common reasons for re-entering the panic code once a panic
70 * routine will invoke panic(); (2) if the clock routine decides that sync
71 * or dump is not making progress, it will invoke panic() to force a timeout.
73 * unrelated panic while sync or dump is still underway, is extremely unlikely.
78 * The panic code is entered via a call directly to the vpanic() function,
79 * or its varargs wrappers panic() and cmn_err(9F). The vpanic routine
83 * the common panicsys() routine. The first thread to initiate a panic
85 * the panic code itself does not overwrite valuable data on that thread's
95 * Every thread which initiates a panic has its T_PANIC flag set so we can
100 * reboots. We allow the panic_thread to store its register set and panic
103 * state at the time of the panic. If we do get a dump, the panic buffer
105 * therein (see <sys/panic.h>).
118 * indicate a soft c, and thus the verb and adjective forms of 'panic' are
120 * the ill-conceived "panicing" and "panic'd" is discouraged.
146 #include <sys/panic.h>
152 * first thread to initiate a panic. These are examined by post-mortem
153 * debugging tools; the inconsistent use of 'panic' versus 'panic_' in
161 label_t panic_pcb; /* t_pcb at time of panic */
165 clock_t panic_lbolt; /* lbolt at time of panic */
166 int64_t panic_lbolt64; /* lbolt64 at time of panic */
167 hrtime_t panic_hrtime; /* hrtime at time of panic */
168 timespec_t panic_hrestime; /* hrestime at time of panic */
169 int panic_ipl; /* ipl on panic_cpu at time of panic */
178 char *panic_bootstr = NULL; /* mdboot string to use after panic */
179 int panic_bootfcn = AD_BOOT; /* mdboot function to use after panic */
185 * The do_polled_io flag is set by the panic code to inform the SCSI subsystem
192 * panic subsystem that it should not attempt an initial debug_enter.
197 * Triggers for panic state transitions:
256 * Record one-time panic information and quiesce the other CPUs.
257 * Then print out the panic message and stack trace.
330 * A hypervisor panic originates outside of Solaris, so we
331 * don't want to prepend the panic message with misleading
352 debug_enter("panic: entering debugger "
355 debug_enter("panic: entering debugger "
370 * will re-enter panic if we are not making progress with sync or dump.
396 debug_enter("panic: entering debugger (continue to reboot)");
415 panic(const char *format, ...)