svn commit: r213305 - in head/sys: gdb kern sys

Andriy Gapon avg at FreeBSD.org
Thu Sep 30 17:05:23 UTC 2010


Author: avg
Date: Thu Sep 30 17:05:23 2010
New Revision: 213305
URL: http://svn.freebsd.org/changeset/base/213305

Log:
  there must be only one SYSINIT with SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY order
  
  SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY should only be used to call
  scheduler() function which turns the initial thread into swapper proper
  and thus there is no further SYSINIT processing.
  Other SYSINITs with SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY may get ordered
  after scheduler() and thus never executed.  That particular relative
  order is semi-arbitrary.
  
  Thus, change such places to use SI_ORDER_MIDDLE.
  Also, use SI_ORDER_MIDDLE instead of correct, but less appealing,
  SI_ORDER_ANY - 1.
  
  MFC after:	1 week

Modified:
  head/sys/gdb/gdb_cons.c
  head/sys/kern/kern_ntptime.c
  head/sys/sys/sched.h

Modified: head/sys/gdb/gdb_cons.c
==============================================================================
--- head/sys/gdb/gdb_cons.c	Thu Sep 30 16:47:01 2010	(r213304)
+++ head/sys/gdb/gdb_cons.c	Thu Sep 30 17:05:23 2010	(r213305)
@@ -126,7 +126,7 @@ oktousecallout(void *data __unused)
 {
 	calloutok = 1;
 }
-SYSINIT(gdbhack, SI_SUB_RUN_SCHEDULER, SI_ORDER_ANY, oktousecallout, NULL);
+SYSINIT(gdbhack, SI_SUB_RUN_SCHEDULER, SI_ORDER_MIDDLE, oktousecallout, NULL);
 
 static void
 gdb_cnputc(struct consdev *cp, int c)

Modified: head/sys/kern/kern_ntptime.c
==============================================================================
--- head/sys/kern/kern_ntptime.c	Thu Sep 30 16:47:01 2010	(r213304)
+++ head/sys/kern/kern_ntptime.c	Thu Sep 30 17:05:23 2010	(r213305)
@@ -1035,5 +1035,5 @@ start_periodic_resettodr(void *arg __unu
 	    periodic_resettodr, NULL);
 }
 
-SYSINIT(periodic_resettodr, SI_SUB_RUN_SCHEDULER, SI_ORDER_ANY - 1,
+SYSINIT(periodic_resettodr, SI_SUB_RUN_SCHEDULER, SI_ORDER_MIDDLE,
 	start_periodic_resettodr, NULL);

Modified: head/sys/sys/sched.h
==============================================================================
--- head/sys/sys/sched.h	Thu Sep 30 16:47:01 2010	(r213304)
+++ head/sys/sys/sched.h	Thu Sep 30 17:05:23 2010	(r213305)
@@ -173,7 +173,7 @@ static void name ## _add_proc(void *dumm
 	    #name, CTLTYPE_LONG|CTLFLAG_RD|CTLFLAG_MPSAFE,		\
 	    ptr, 0, sysctl_dpcpu_long, "LU", descr);			\
 }									\
-SYSINIT(name, SI_SUB_RUN_SCHEDULER, SI_ORDER_ANY, name ## _add_proc, NULL);
+SYSINIT(name, SI_SUB_RUN_SCHEDULER, SI_ORDER_MIDDLE, name ## _add_proc, NULL);
 
 #define	SCHED_STAT_DEFINE(name, descr)					\
     DPCPU_DEFINE(unsigned long, name);					\


More information about the svn-src-all mailing list