svn commit: r356656 - in head/sys: kern sys

Mateusz Guzik mjg at FreeBSD.org
Sun Jan 12 06:09:10 UTC 2020


Author: mjg
Date: Sun Jan 12 06:09:10 2020
New Revision: 356656
URL: https://svnweb.freebsd.org/changeset/base/356656

Log:
  Add "panicked" boolean which can be tested instead of panicstr
  
  The test is performed all the time and reading entire panicstr to do it
  wastes space.

Modified:
  head/sys/kern/kern_shutdown.c
  head/sys/sys/systm.h

Modified: head/sys/kern/kern_shutdown.c
==============================================================================
--- head/sys/kern/kern_shutdown.c	Sun Jan 12 06:07:54 2020	(r356655)
+++ head/sys/kern/kern_shutdown.c	Sun Jan 12 06:09:10 2020	(r356656)
@@ -217,7 +217,8 @@ SYSCTL_INT(_kern, OID_AUTO, kerneldump_gzlevel, CTLFLA
  * Variable panicstr contains argument to first call to panic; used as flag
  * to indicate that the kernel has already called panic.
  */
-const char __read_mostly *panicstr;
+const char *panicstr;
+bool __read_frequently panicked;
 
 int __read_mostly dumping;		/* system is dumping */
 int rebooting;				/* system is rebooting */
@@ -873,6 +874,7 @@ vpanic(const char *fmt, va_list ap)
 	else {
 		bootopt |= RB_DUMP;
 		panicstr = fmt;
+		panicked = true;
 		newpanic = 1;
 	}
 

Modified: head/sys/sys/systm.h
==============================================================================
--- head/sys/sys/systm.h	Sun Jan 12 06:07:54 2020	(r356655)
+++ head/sys/sys/systm.h	Sun Jan 12 06:09:10 2020	(r356656)
@@ -53,7 +53,8 @@ extern int cold;		/* nonzero if we are doing a cold bo
 extern int suspend_blocked;	/* block suspend due to pending shutdown */
 extern int rebooting;		/* kern_reboot() has been called. */
 extern const char *panicstr;	/* panic message */
-#define	KERNEL_PANICKED()	__predict_false(panicstr != NULL)
+extern bool panicked;
+#define	KERNEL_PANICKED()	__predict_false(panicked)
 extern char version[];		/* system version */
 extern char compiler_version[];	/* compiler version */
 extern char copyright[];	/* system copyright */


More information about the svn-src-head mailing list