From owner-freebsd-threads@FreeBSD.ORG Tue Feb 14 05:00:34 2006 Return-Path: X-Original-To: freebsd-threads@hub.freebsd.org Delivered-To: freebsd-threads@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D336B16A420 for ; Tue, 14 Feb 2006 05:00:34 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3767E43D8D for ; Tue, 14 Feb 2006 05:00:29 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k1E50TvD048531 for ; Tue, 14 Feb 2006 05:00:29 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1E50TTF048530; Tue, 14 Feb 2006 05:00:29 GMT (envelope-from gnats) Date: Tue, 14 Feb 2006 05:00:29 GMT Message-Id: <200602140500.k1E50TTF048530@freefall.freebsd.org> To: freebsd-threads@FreeBSD.org From: David Xu Cc: Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork() X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: David Xu List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Feb 2006 05:00:34 -0000 The following reply was made to PR threads/89262; it has been noted by GNATS. From: David Xu To: John Baldwin Cc: bug-followup@freebsd.org, garry@networkphysics.com Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork() Date: Tue, 14 Feb 2006 12:51:56 +0800 John Baldwin wrote: > Only thing I would prefer is that you keep sleepq_catch_signals() but make it > an internal function that sleepq_waitsig() and sleepq_timed_waitsig() call > before sleepq_switch() so that sleepq_switch() doesn't get so long. Also, it > would be good. Also, in sleepq_switch() you are using sleepq_release() and > sleepq_lock() even though you already have a sleepqueue_chain pointer, and > you do mtx operations on sc->sc_lock explicitly in some other places. It > would be best to consistently just do mutex ops on sc->sc_lock instead of > redoing the hash-lookup several times. > patch updated: http://people.freebsd.org/~davidxu/patch/slpq_susp5.patch