socsvn commit: r238832 - soc2012/rudot/sys/kern

rudot at FreeBSD.org rudot at FreeBSD.org
Mon Jul 2 19:56:56 UTC 2012


Author: rudot
Date: Mon Jul  2 19:56:53 2012
New Revision: 238832
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=238832

Log:
  fixed hanging of make buildworld - proper handling of zombies

Modified:
  soc2012/rudot/sys/kern/kern_racct.c

Modified: soc2012/rudot/sys/kern/kern_racct.c
==============================================================================
--- soc2012/rudot/sys/kern/kern_racct.c	Mon Jul  2 18:35:08 2012	(r238831)
+++ soc2012/rudot/sys/kern/kern_racct.c	Mon Jul  2 19:56:53 2012	(r238832)
@@ -973,13 +973,14 @@
 	for (;;) {
 		sx_slock(&allproc_lock);
 
-		FOREACH_PROC_IN_SYSTEM(p) {
+		LIST_FOREACH(p, &zombproc, p_list) {
 			PROC_LOCK(p);
-			if (p->p_state == PRS_ZOMBIE) {
-				pct = racct_getpcpu(p);
-				racct_set(p, RACCT_PCTCPU, pct);
-			}
+			racct_set(p, RACCT_PCTCPU, 0);
+			PROC_UNLOCK(p);
+		}
 
+		FOREACH_PROC_IN_SYSTEM(p) {
+			PROC_LOCK(p);
 			if (p->p_state != PRS_NORMAL) {
 				PROC_UNLOCK(p);
 				continue;


More information about the svn-soc-all mailing list