Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 May 2008 20:50:43 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 141298 for review
Message-ID:  <200805072050.m47KohOo070612@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=141298

Change 141298 by jhb@jhb_mutex on 2008/05/07 20:50:43

	Catch up to per-cpu callout wheels.

Affected files ...

.. //depot/projects/smpng/sys/kern/kern_timeout.c#39 edit

Differences ...

==== //depot/projects/smpng/sys/kern/kern_timeout.c#39 (text+ko) ====

@@ -884,29 +884,42 @@
 
 DB_SHOW_COMMAND(callouts, db_show_callouts)
 {
+	struct callout_cpu *cc;
 	struct callout *c;
 	int bucket, callouts, sticks;
 
+#ifdef SMP
+	if (have_addr) {
+		if (addr >= 0 && addr <= mp_maxid && !CPU_ABSENT(addr))
+			cc = CC_CPU(addr);
+		else {
+			db_printf("Invalid cpu %d\n", addr);
+			return;
+		}
+	} else
+#endif
+		cc = CC_SELF();
+
 	/* First, count the number of callouts. */
 	callouts = 0;
 	for (bucket = 0; bucket < callwheelsize; bucket++) {
-		TAILQ_FOREACH(c, &callwheel[bucket], c_links.tqe) {
+		TAILQ_FOREACH(c, &cc->cc_callwheel[bucket], c_links.tqe) {
 			callouts++;
 		}
 	}
 
-	sticks = softticks;
+	sticks = cc->cc_softticks;
 	do {
 		bucket = sticks & callwheelmask;
-		TAILQ_FOREACH(c, &callwheel[bucket], c_links.tqe) {
+		TAILQ_FOREACH(c, &cc->cc_callwheel[bucket], c_links.tqe) {
 			if (c->c_time < sticks)
 				continue;
 			if (c->c_time > sticks)
 				break;
 #if 1
-			db_printf("%9d ", c->c_time - softticks);
+			db_printf("%9d ", c->c_time - cc->cc_softticks);
 #else
-			db_print_ticks(c->c_time - softticks);
+			db_print_ticks(c->c_time - cc->cc_softticks);
 			db_printf(" ");
 #endif
 			db_printsym((db_expr_t)c->c_func, DB_STGY_PROC);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200805072050.m47KohOo070612>