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