From owner-svn-soc-all@FreeBSD.ORG Mon Jul 2 19:56:56 2012 Return-Path: Delivered-To: svn-soc-all@FreeBSD.org Received: from socsvn.FreeBSD.org (unknown [IPv6:2001:4f8:fff6::2f]) by hub.freebsd.org (Postfix) with SMTP id 9B4A51065706 for ; Mon, 2 Jul 2012 19:56:54 +0000 (UTC) (envelope-from rudot@FreeBSD.org) Received: by socsvn.FreeBSD.org (sSMTP sendmail emulation); Mon, 02 Jul 2012 19:56:54 +0000 Date: Mon, 02 Jul 2012 19:56:54 +0000 From: rudot@FreeBSD.org To: svn-soc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Message-Id: <20120702195654.9B4A51065706@hub.freebsd.org> Cc: Subject: socsvn commit: r238832 - soc2012/rudot/sys/kern X-BeenThere: svn-soc-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the entire Summer of Code repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Jul 2012 19:56:56 -0000 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;