Date: Fri, 24 Aug 2001 10:21:27 +0930 From: Greg Lehey <grog@FreeBSD.org> To: John Baldwin <jhb@FreeBSD.org> Cc: cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/conf options src/sys/i386/conf NOTES src Message-ID: <20010824102127.A21776@wantadilla.lemis.com> In-Reply-To: <XFMail.010823172710.jhb@FreeBSD.org>; from jhb@FreeBSD.org on Thu, Aug 23, 2001 at 05:27:10PM -0700 References: <20010824095113.E9221@wantadilla.lemis.com> <XFMail.010823172710.jhb@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, 23 August 2001 at 17:27:10 -0700, John Baldwin wrote: > > On 24-Aug-01 Greg Lehey wrote: >> On Thursday, 23 August 2001 at 13:32:21 -0700, John Baldwin wrote: >>> jhb 2001/08/23 13:32:21 PDT >>> >>> Modified files: >>> sys/conf options >>> sys/i386/conf NOTES >>> sys/kern kern_shutdown.c >>> sys/sys param.h >>> Log: >>> Add a new kernel option RESTARTABLE_PANICS. If this option is present, >>> then one can restart from a panic by resetting the panicstr variable to >>> NULL. This commit conditionalizes the previously committed functionality >>> on this variable. It also removes the __dead2 attribute from the panic() >>> function so that when one continues from a panic() the behavior will >>> be predictable. >> >> The only way I can see to restart from a panic is to enter the >> debugger and then return, and your code seems to bear this out. Am I >> missing something? I would think that we can always return from the >> debugger if we want to continue, and that the RESTARTABLE_PANICS and >> check for null format string are not necessary. Are you concerned >> about people who will return from the debugger when they don't mean >> to? There are plenty of other ways to shoot down the system from the >> debugger. > > Err. If you continue from the debugger, the panic() function calls boot() which > reboots the system. If you chagne panicstr to NULL, then we don't call boot() > but return from panic(), thus effectively turning the panic() into a > Debugger(). So reset the panic string. #if defined(DDB) if (debugger_on_panic) { Debugger ("panic"); panicstr = NULL; #ifdef SMP atomic_store_rel_int(&panic_cpu, NOCPU); #endif return; } #endif boot(bootopt); Greg -- See complete headers for address and phone numbers To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010824102127.A21776>