socsvn commit: r239878 - soc2012/rudot/sys/kern
rudot at FreeBSD.org
rudot at FreeBSD.org
Sat Jul 28 22:29:52 UTC 2012
Author: rudot
Date: Sat Jul 28 22:29:49 2012
New Revision: 239878
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=239878
Log:
do not count cpu idlethread in the %cpu of the root user
Modified:
soc2012/rudot/sys/kern/kern_racct.c
Modified: soc2012/rudot/sys/kern/kern_racct.c
==============================================================================
--- soc2012/rudot/sys/kern/kern_racct.c Sat Jul 28 21:59:12 2012 (r239877)
+++ soc2012/rudot/sys/kern/kern_racct.c Sat Jul 28 22:29:49 2012 (r239878)
@@ -288,6 +288,10 @@
#ifdef SCHED_4BSD
fixpt_t pctcpu, pctcpu_next;
#endif
+#ifdef SMP
+ struct pcpu *pc;
+ u_int cpuid;
+#endif
fixpt_t p_pctcpu;
struct thread *td;
@@ -297,6 +301,16 @@
p_pctcpu = 0;
FOREACH_THREAD_IN_PROC(p, td) {
+ if (td == PCPU_GET(idlethread))
+ continue;
+#ifdef SMP
+ cpuid = td->td_oncpu;
+ if (cpuid != NOCPU) {
+ pc = pcpu_find(cpuid);
+ if (td == pc->pc_idlethread)
+ continue;
+ }
+#endif
thread_lock(td);
#ifdef SCHED_4BSD
pctcpu = sched_pctcpu(td);
More information about the svn-soc-all
mailing list