Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Jul 2012 19:56:54 +0000
From:      rudot@FreeBSD.org
To:        svn-soc-all@FreeBSD.org
Subject:   socsvn commit: r238832 - soc2012/rudot/sys/kern
Message-ID:  <20120702195654.9B4A51065706@hub.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120702195654.9B4A51065706>