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>