PERFORCE change 141298 for review

John Baldwin jhb at FreeBSD.org
Wed May 7 20:50:45 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=141298

Change 141298 by jhb at 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);


More information about the p4-projects mailing list