From owner-freebsd-current@FreeBSD.ORG Tue Nov 9 03:37:59 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5CBAE16A4CE; Tue, 9 Nov 2004 03:37:59 +0000 (GMT) Received: from mail.ntmk.ru (mail.ntmk.ru [217.114.241.6]) by mx1.FreeBSD.org (Postfix) with ESMTP id F0DF843D45; Tue, 9 Nov 2004 03:37:57 +0000 (GMT) (envelope-from boris@ntmk.ru) Received: from boris.nikom.ru ([10.1.16.195]) by mail.ntmk.ru with esmtp (Exim 4.34) id 1CRMpP-0007W5-QI; Tue, 09 Nov 2004 08:37:56 +0500 Message-ID: <41903B93.4050604@ntmk.ru> Date: Tue, 09 Nov 2004 08:37:55 +0500 From: Boris Kovalenko User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.2) Gecko/20041018 X-Accept-Language: ru, en-us, en MIME-Version: 1.0 To: David Xu , freebsd-current@freebsd.org References: <418AFFBB.4020501@ntmk.ru> <418B04B7.6010905@freebsd.org> In-Reply-To: <418B04B7.6010905@freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [FreeBSD 5.3-RC2] Processes STILL hanging in unkillable state X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Nov 2004 03:37:59 -0000 David Xu wrote: Hello! Seems to be OK. Four days without problems. > Please try following patch: > > Index: kern_thread.c > =================================================================== > RCS file: /home/ncvs/src/sys/kern/kern_thread.c,v > retrieving revision 1.205 > diff -u -r1.205 kern_thread.c > --- kern_thread.c 4 Nov 2004 22:13:16 -0000 1.205 > +++ kern_thread.c 5 Nov 2004 04:23:24 -0000 > @@ -832,11 +832,10 @@ > continue; > /* > * maybe other inhibitted states too? > - * XXXKSE Is it totally safe to > - * suspend a non-interruptable thread? > */ > - if (td2->td_inhibitors & > - (TDI_SLEEPING | TDI_SWAPPED)) > + if ((td2->td_flags & TDF_SINTR) && > + (td2->td_inhibitors & > + (TDI_SLEEPING | TDI_SWAPPED))) > thread_suspend_one(td2); > break; > } With respect, Boris