Re: making PANIC_REBOOT_WAIT_TIME a tunable

2013-12-04 Thread Mark Felder


On Mon, Dec 2, 2013, at 2:26, Colin Percival wrote:
 Hi all,
 
 It seems that PANIC_REBOOT_WAIT_TIME has been a compile-time setting
 forever;
 and I can't see any reason for this, but I assume there was one... at
 some
 point in the distant past.
 
 The attached patch makes it a loader tunable and sysctl.  My reason for
 wanting
 this is to make EC2 images reboot faster after a panic (not that it
 happens
 very often, of course) -- there's no point waiting for a key press at the
 console because the EC2 console is output-only.
 
 Any objections?
 

I tend to cheat this problem by using watchdog on my hardware servers.
This sounds quite convenient as I can't use watchdog in VMs...
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


making PANIC_REBOOT_WAIT_TIME a tunable

2013-12-02 Thread Colin Percival
Hi all,

It seems that PANIC_REBOOT_WAIT_TIME has been a compile-time setting forever;
and I can't see any reason for this, but I assume there was one... at some
point in the distant past.

The attached patch makes it a loader tunable and sysctl.  My reason for wanting
this is to make EC2 images reboot faster after a panic (not that it happens
very often, of course) -- there's no point waiting for a key press at the
console because the EC2 console is output-only.

Any objections?

-- 
Colin Percival
Security Officer Emeritus, FreeBSD | The power to serve
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid
Index: sys/kern/kern_shutdown.c
===
--- sys/kern/kern_shutdown.c(revision 258085)
+++ sys/kern/kern_shutdown.c(working copy)
@@ -89,6 +89,11 @@
 #ifndef PANIC_REBOOT_WAIT_TIME
 #define PANIC_REBOOT_WAIT_TIME 15 /* default to 15 seconds */
 #endif
+int panic_reboot_wait_time = PANIC_REBOOT_WAIT_TIME;
+SYSCTL_INT(_kern, OID_AUTO, panic_reboot_wait_time, CTLFLAG_RW | CTLFLAG_TUN,
+panic_reboot_wait_time, 0,
+Seconds to wait before rebooting after a panic);
+TUNABLE_INT(kern.panic_reboot_wait_time, panic_reboot_wait_time);
 
 /*
  * Note that stdarg.h and the ANSI style va_start macro is used for both
@@ -485,12 +490,12 @@
int loop;
 
if (howto  RB_DUMP) {
-   if (PANIC_REBOOT_WAIT_TIME != 0) {
-   if (PANIC_REBOOT_WAIT_TIME != -1) {
+   if (panic_reboot_wait_time != 0) {
+   if (panic_reboot_wait_time != -1) {
printf(Automatic reboot in %d seconds - 
   press a key on the console to abort\n,
-   PANIC_REBOOT_WAIT_TIME);
-   for (loop = PANIC_REBOOT_WAIT_TIME * 10;
+   panic_reboot_wait_time);
+   for (loop = panic_reboot_wait_time * 10;
 loop  0; --loop) {
DELAY(1000 * 100); /* 1/10th second */
/* Did user type a key? */
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org