svn commit: r327426 - head/sys/kern

Colin Percival cperciva at FreeBSD.org
Sun Dec 31 09:22:33 UTC 2017


Author: cperciva
Date: Sun Dec 31 09:22:31 2017
New Revision: 327426
URL: https://svnweb.freebsd.org/changeset/base/327426

Log:
  Use the TSLOG framework to record entry/exit timestamps for machine
  independent functions with important roles in the early boot process:
  mi_startup (with the "exit" recorded when it becomes swapper),
  start_init (with the "exit" recorded when the thread is about to
  "return" into the newly created init process), vfs_mountroot, and
  vfs_mountroot_wait.

Modified:
  head/sys/kern/init_main.c
  head/sys/kern/vfs_mountroot.c

Modified: head/sys/kern/init_main.c
==============================================================================
--- head/sys/kern/init_main.c	Sun Dec 31 09:22:07 2017	(r327425)
+++ head/sys/kern/init_main.c	Sun Dec 31 09:22:31 2017	(r327426)
@@ -220,6 +220,8 @@ mi_startup(void)
 	int verbose;
 #endif
 
+	TSENTER();
+
 	if (boothowto & RB_VERBOSE)
 		bootverbose++;
 
@@ -313,6 +315,8 @@ restart:
 		}
 	}
 
+	TSEXIT();	/* Here so we don't overlap with start_init. */
+
 	mtx_assert(&Giant, MA_OWNED | MA_NOTRECURSED);
 	mtx_unlock(&Giant);
 
@@ -706,6 +710,8 @@ start_init(void *dummy)
 
 	GIANT_REQUIRED;
 
+	TSENTER();	/* Here so we don't overlap with mi_startup. */
+
 	td = curthread;
 	p = td->td_proc;
 
@@ -799,6 +805,7 @@ start_init(void *dummy)
 		 */
 		if ((error = sys_execve(td, &args)) == EJUSTRETURN) {
 			mtx_unlock(&Giant);
+			TSEXIT();
 			return;
 		}
 		if (error != ENOENT)

Modified: head/sys/kern/vfs_mountroot.c
==============================================================================
--- head/sys/kern/vfs_mountroot.c	Sun Dec 31 09:22:07 2017	(r327425)
+++ head/sys/kern/vfs_mountroot.c	Sun Dec 31 09:22:31 2017	(r327426)
@@ -938,6 +938,8 @@ vfs_mountroot_wait(void)
 	struct timeval lastfail;
 	int curfail;
 
+	TSENTER();
+
 	curfail = 0;
 	while (1) {
 		DROP_GIANT();
@@ -957,6 +959,8 @@ vfs_mountroot_wait(void)
 		msleep(&root_holds, &root_holds_mtx, PZERO | PDROP, "roothold",
 		    hz);
 	}
+
+	TSEXIT();
 }
 
 static int
@@ -1013,6 +1017,8 @@ vfs_mountroot(void)
 	struct thread *td;
 	time_t timebase;
 	int error;
+	
+	TSENTER();
 
 	td = curthread;
 
@@ -1062,6 +1068,8 @@ vfs_mountroot(void)
 	mtx_unlock(&root_holds_mtx);
 
 	EVENTHANDLER_INVOKE(mountroot);
+
+	TSEXIT();
 }
 
 static struct mntarg *


More information about the svn-src-all mailing list