From owner-freebsd-threads@FreeBSD.ORG Sun Feb 12 04:00:27 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 4130E16A422 for ; Sun, 12 Feb 2006 04:00:27 +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 CD47C43D46 for ; Sun, 12 Feb 2006 04:00:26 +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 k1C40QsG033788 for ; Sun, 12 Feb 2006 04:00:26 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1C40Qo5033779; Sun, 12 Feb 2006 04:00:26 GMT (envelope-from gnats) Date: Sun, 12 Feb 2006 04:00:26 GMT Message-Id: <200602120400.k1C40Qo5033779@freefall.freebsd.org> To: freebsd-threads@FreeBSD.org From: "Ricardo A. Reis" Cc: Subject: Re: kern/91266 : [threads] Trying sleep, but thread marked as sleeping prohibited X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: "Ricardo A. Reis" List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Feb 2006 04:00:27 -0000 The following reply was made to PR kern/91266; it has been noted by GNATS. From: "Ricardo A. Reis" To: bug-followup@freebsd.org Cc: Subject: Re: kern/91266 : [threads] Trying sleep, but thread marked as sleeping prohibited Date: Sun, 12 Feb 2006 01:51:59 -0200 ------=_Part_3306_14766463.1139716319518 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline IFBsZWFzZSBjbG9zZSB0aGlzIHByLCBhZnRlciB1cGRhdGVkIHRoZSBzcmMgeWVzdGVyZGF5LApu byBtb3JlIHBhbmljIG9jY3VycmVkIGluIG1ha2UgYnVpbGR3b3JsZC4KCi0tClJpY2FyZG8gQS4g UmVpcwpVTklGRVNQClVuaXggYW5kIE5ldHdvcmsgQWRtaW4K ------=_Part_3306_14766463.1139716319518 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 Content-Disposition: inline PHNwYW4gY2xhc3M9InEiPiAgUGxlYXNlIGNsb3NlIHRoaXMgcHIsIGFmdGVyIHVwZGF0ZWQgdGhl IHNyYyB5ZXN0ZXJkYXksPGJyPm5vIG1vcmUgcGFuaWMgb2NjdXJyZWQgaW4gbWFrZSBidWlsZHdv cmxkLiA8YnI+Cjwvc3Bhbj48YnI+LS0gPGJyPlJpY2FyZG8gQS4gUmVpczxicj5VTklGRVNQIDxi cj5Vbml4IGFuZCBOZXR3b3JrIEFkbWluPGJyPgoK ------=_Part_3306_14766463.1139716319518-- From owner-freebsd-threads@FreeBSD.ORG Mon Feb 13 09:20:13 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 CA85016A423 for ; Mon, 13 Feb 2006 09:20:13 +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 46C2743D7C for ; Mon, 13 Feb 2006 09:20:07 +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 k1D9K6aq056467 for ; Mon, 13 Feb 2006 09:20:06 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1D9K663056466; Mon, 13 Feb 2006 09:20:06 GMT (envelope-from gnats) Date: Mon, 13 Feb 2006 09:20:06 GMT Message-Id: <200602130920.k1D9K663056466@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: Mon, 13 Feb 2006 09:20:13 -0000 The following reply was made to PR threads/89262; it has been noted by GNATS. From: David Xu To: bug-followup@freebsd.org, garry@NetworkPhysics.COM Cc: jhb@freebsd.org Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork() Date: Mon, 13 Feb 2006 17:11:26 +0800 ast will call userret which in turn will call thread_suspend_check. so the bug may not be here, but in other code. I have found a race between sleep queue and thread suspension code, the following patch fixed the bug, it also simplified interaction between sleep queue and signal code. now, sleepq_abort() is also fixed, it can save an errno, unlike current code, it wrongly works as wakeup(). http://people.freebsd.org/~davidxu/patch/slpq_susp4.patch David Xu From owner-freebsd-threads@FreeBSD.ORG Mon Feb 13 11:02:51 2006 Return-Path: X-Original-To: freebsd-threads@freebsd.org Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0C03516A422 for ; Mon, 13 Feb 2006 11:02:51 +0000 (GMT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5E55F43D4C for ; Mon, 13 Feb 2006 11:02:50 +0000 (GMT) (envelope-from owner-bugmaster@freebsd.org) Received: from freefall.freebsd.org (peter@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k1DB2obn067483 for ; Mon, 13 Feb 2006 11:02:50 GMT (envelope-from owner-bugmaster@freebsd.org) Received: (from peter@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1DB2nFC067477 for freebsd-threads@freebsd.org; Mon, 13 Feb 2006 11:02:49 GMT (envelope-from owner-bugmaster@freebsd.org) Date: Mon, 13 Feb 2006 11:02:49 GMT Message-Id: <200602131102.k1DB2nFC067477@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: peter set sender to owner-bugmaster@freebsd.org using -f From: FreeBSD bugmaster To: freebsd-threads@FreeBSD.org Cc: Subject: Current problem reports assigned to you X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Feb 2006 11:02:51 -0000 Current FreeBSD problem reports Critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2005/01/26] threads/76690threads fork hang in child for (-lc_r & -lthr) 1 problem total. Serious problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2000/07/18] kern/20016 threads pthreads: Cannot set scheduling timer/Can o [2000/08/26] kern/20861 threads libc_r does not honor socket timeouts o [2001/01/20] threads/24472threads libc_r does not honor SO_SNDTIMEO/SO_RCVT o [2001/01/25] threads/24632threads libc_r delicate deviation from libc in ha o [2001/01/25] kern/24641 threads pthread_rwlock_rdlock can deadlock o [2001/11/26] bin/32295 threads pthread dont dequeue signals o [2002/02/01] threads/34536threads accept() blocks other threads o [2002/05/25] kern/38549 threads the procces compiled whith pthread stoppe o [2002/06/27] threads/39922threads [threads] [patch] Threaded applications e o [2002/08/04] kern/41331 threads Pthread library open sets O_NONBLOCK flag o [2003/03/02] threads/48856threads Setting SIGCHLD to SIG_IGN still leaves z o [2003/03/10] threads/49087threads Signals lost in programs linked with libc s [2004/03/15] kern/64313 threads FreeBSD (OpenBSD) pthread implicit set/un o [2004/08/26] threads/70975threads unexpected and unreliable behaviour when o [2004/10/05] threads/72353threads Assertion fails in /usr/src/lib/libpthrea o [2004/10/07] threads/72429threads threads blocked in stdio (fgets, etc) are o [2004/10/21] threads/72953threads fork() unblocks blocked signals w/o PTHRE o [2004/12/19] threads/75273threads FBSD 5.3 libpthread (KSE) bug o [2004/12/21] threads/75374threads pthread_kill() ignores SA_SIGINFO flag o [2005/01/26] threads/76694threads fork cause hang in dup()/close() function o [2005/03/10] threads/78660threads Java hangs unkillably in STOP state after o [2005/04/08] threads/79683threads svctcp_create() fails if multiple threads o [2005/04/28] threads/80435threads panic on high loads o [2005/05/19] threads/81258threads Thread specific data is sometimes assigne o [2005/07/22] threads/83914threads [libc] popen() doesn't work in static thr o [2005/08/02] threads/84483threads problems with devel/nspr and -lc_r on 4.x o [2005/08/20] threads/85160threads [libthr] [patch] libobjc + libpthread/lib o [2005/11/19] threads/89262threads [kernel] [patch] multi-threaded process h o [2005/12/12] threads/90278threads libthr, ULE and -current produces >100% W o [2006/01/03] kern/91266 threads [threads] Trying sleep, but thread marked 30 problems total. Non-critical problems S Submitted Tracker Resp. Description ------------------------------------------------------------------------------- o [2000/06/13] kern/19247 threads uthread_sigaction.c does not do anything o [2000/10/21] kern/22190 threads A threaded read(2) from a socketpair(2) f o [2001/09/09] threads/30464threads pthread mutex attributes -- pshared o [2002/05/02] threads/37676threads libc_r: msgsnd(), msgrcv(), pread(), pwri s [2002/07/16] threads/40671threads pthread_cancel doesn't remove thread from o [2004/07/13] threads/69020threads pthreads library leaks _gc_mutex o [2004/09/21] threads/71966threads Mlnet Core Dumped : Fatal error '_pq_inse o [2004/11/21] threads/74180threads KSE problem. Applications those riched ma o [2005/04/13] threads/79887threads [patch] freopen() isn't thread-safe o [2005/05/13] threads/80992threads abort() sometimes not caught by gdb depen o [2005/05/26] threads/81534threads [libc_r] [patch] libc_r close() will fail 11 problems total. From owner-freebsd-threads@FreeBSD.ORG Mon Feb 13 18:20:13 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 1495416A420 for ; Mon, 13 Feb 2006 18:20:13 +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 D8D2143D6D for ; Mon, 13 Feb 2006 18:20:09 +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 k1DIK92S005153 for ; Mon, 13 Feb 2006 18:20:09 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1DIK9Yn005152; Mon, 13 Feb 2006 18:20:09 GMT (envelope-from gnats) Date: Mon, 13 Feb 2006 18:20:09 GMT Message-Id: <200602131820.k1DIK9Yn005152@freefall.freebsd.org> To: freebsd-threads@FreeBSD.org From: John Baldwin 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: John Baldwin List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Feb 2006 18:20:13 -0000 The following reply was made to PR threads/89262; it has been noted by GNATS. From: John Baldwin To: David Xu Cc: bug-followup@freebsd.org, garry@networkphysics.com Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork() Date: Mon, 13 Feb 2006 13:02:42 -0500 On Monday 13 February 2006 04:11, David Xu wrote: > ast will call userret which in turn will call thread_suspend_check. > so the bug may not be here, but in other code. > > I have found a race between sleep queue and thread suspension code, > the following patch fixed the bug, it also simplified interaction > between sleep queue and signal code. now, sleepq_abort() is also > fixed, it can save an errno, unlike current code, it wrongly works > as wakeup(). > > http://people.freebsd.org/~davidxu/patch/slpq_susp4.patch > > David Xu 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. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-freebsd-threads@FreeBSD.ORG Mon Feb 13 21:16:09 2006 Return-Path: X-Original-To: freebsd-threads@FreeBSD.org Delivered-To: freebsd-threads@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E62AC16A47C for ; Mon, 13 Feb 2006 21:16:09 +0000 (GMT) (envelope-from senna@mail.fireshade.net) Received: from mail.fireshade.net (fireshade.net [195.131.116.241]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1B47E43D78 for ; Mon, 13 Feb 2006 21:16:07 +0000 (GMT) (envelope-from senna@mail.fireshade.net) Received: from misato ([10.0.0.3]) by mail.fireshade.net with esmtpa (Exim 4.60 (FreeBSD)) (envelope-from ) id 1F8l3E-0003ml-A4 for freebsd-threads@FreeBSD.org; Tue, 14 Feb 2006 00:16:04 +0300 Date: Tue, 14 Feb 2006 00:16:54 +0300 From: Alhov Gennadiy Organization: Fireshade studios X-Priority: 3 (Normal) Message-ID: <757952317.20060214001654@mail.fireshade.net> To: freebsd-threads@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: Subject: malloc X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: senna List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Feb 2006 21:16:10 -0000 Hello freebsd-threads, Is libc (not libc_r) malloc in 4.11 thread-safe? I'm getting strange errors in my program I can't debug: mireille:~/asll/Armageddon/game_v1/updater-server$ ./update-server Update server $Revision: 1.11 $ starting... update-serverupdate-serverupdate-server in malloc(): in malloc(): in malloc(): warning: warning: warning: update-serverupdate-serverrecursive call recursive call recursive call in malloc(): in malloc(): warning: warning: recursive call recursive call Segmentation fault (core dumped) mireille:~/asll/Armageddon/game_v1/updater-server$ uname -a FreeBSD mireille.fireshade.net 4.11-STABLE FreeBSD 4.11-STABLE #0: Sun Aug 28 23:41:16 MSD 2005 senna@mireille.fireshade.net:/usr/home/obj/usr/home/src/sys/MIREILLE i386 -- Best regards, Alhov mailto:senna@mail.fireshade.net From owner-freebsd-threads@FreeBSD.ORG Mon Feb 13 22:35:35 2006 Return-Path: X-Original-To: freebsd-threads@FreeBSD.org Delivered-To: freebsd-threads@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5CE4216A420 for ; Mon, 13 Feb 2006 22:35:35 +0000 (GMT) (envelope-from senna@mail.fireshade.net) Received: from mail.fireshade.net (fireshade.net [195.131.116.241]) by mx1.FreeBSD.org (Postfix) with ESMTP id BEF3943D48 for ; Mon, 13 Feb 2006 22:35:32 +0000 (GMT) (envelope-from senna@mail.fireshade.net) Received: from misato ([10.0.0.3]) by mail.fireshade.net with esmtpa (Exim 4.60 (FreeBSD)) (envelope-from ) id 1F8mI5-0003wv-VJ for freebsd-threads@FreeBSD.org; Tue, 14 Feb 2006 01:35:29 +0300 Date: Tue, 14 Feb 2006 01:36:20 +0300 From: Alhov Gennadiy Organization: Fireshade studios X-Priority: 3 (Normal) Message-ID: <1623976385.20060214013620@mail.fireshade.net> To: freebsd-threads@FreeBSD.org In-Reply-To: <757952317.20060214001654@mail.fireshade.net> References: <757952317.20060214001654@mail.fireshade.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: Subject: Re: malloc X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: senna List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Feb 2006 22:35:35 -0000 Hello Alhov, Tuesday, February 14, 2006, 12:16:54 AM, you wrote: AG> Is libc (not libc_r) malloc in 4.11 thread-safe? I'm getting strange AG> errors in my program I can't debug: AG> mireille:~/asll/Armageddon/game_v1/updater-server$ ./update-server AG> Update server $Revision: 1.11 $ starting... AG> update-serverupdate-serverupdate-server in malloc(): in AG> malloc(): in malloc(): warning: warning: warning: AG> update-serverupdate-serverrecursive call AG> recursive call AG> recursive call AG> in malloc(): in malloc(): warning: warning: recursive call AG> recursive call AG> Segmentation fault (core dumped) AG> mireille:~/asll/Armageddon/game_v1/updater-server$ uname -a AG> FreeBSD mireille.fireshade.net 4.11-STABLE FreeBSD AG> 4.11-STABLE #0: Sun Aug 28 23:41:16 MSD 2005 AG> senna@mireille.fireshade.net:/usr/home/obj/usr/home/src/sys/MIREILLE AG> i386 Pilot error, sorry for fuss. -- Best regards, Alhov mailto:senna@mail.fireshade.net From owner-freebsd-threads@FreeBSD.ORG Tue Feb 14 02:30:19 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 4DFDC16A423 for ; Tue, 14 Feb 2006 02:30:18 +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 04B8E43D46 for ; Tue, 14 Feb 2006 02:30:18 +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 k1E2UHjC036610 for ; Tue, 14 Feb 2006 02:30:17 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1E2UHhK036609; Tue, 14 Feb 2006 02:30:17 GMT (envelope-from gnats) Date: Tue, 14 Feb 2006 02:30:17 GMT Message-Id: <200602140230.k1E2UHhK036609@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 02:30:19 -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 10:23:14 +0800 John Baldwin wrote: > On Monday 13 February 2006 04:11, David Xu wrote: > >>ast will call userret which in turn will call thread_suspend_check. >>so the bug may not be here, but in other code. >> >>I have found a race between sleep queue and thread suspension code, >>the following patch fixed the bug, it also simplified interaction >>between sleep queue and signal code. now, sleepq_abort() is also >>fixed, it can save an errno, unlike current code, it wrongly works >>as wakeup(). >> >>http://people.freebsd.org/~davidxu/patch/slpq_susp4.patch >> >>David Xu > > > 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. The main reason I have inlined sleepq_catch_signals into sleepq_switch is proc and scheduler lock, I have to lock scheduler lock before releasing proc lock. if I leave sleepq_catch_signals there, other places have to lock scheduler lock before calling sleepq_switch. > 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. > Yes, this can be improved. David Xu 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 From owner-freebsd-threads@FreeBSD.ORG Tue Feb 14 19:10:08 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 50B5916A420 for ; Tue, 14 Feb 2006 19:10:08 +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 1CF0143D46 for ; Tue, 14 Feb 2006 19:10:08 +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 k1EJA7LM012818 for ; Tue, 14 Feb 2006 19:10:07 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1EJA7Gt012817; Tue, 14 Feb 2006 19:10:07 GMT (envelope-from gnats) Date: Tue, 14 Feb 2006 19:10:07 GMT Message-Id: <200602141910.k1EJA7Gt012817@freefall.freebsd.org> To: freebsd-threads@FreeBSD.org From: John Baldwin 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: John Baldwin List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Feb 2006 19:10:08 -0000 The following reply was made to PR threads/89262; it has been noted by GNATS. From: John Baldwin To: David Xu 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 14:00:11 -0500 On Monday 13 February 2006 23:51, David Xu wrote: > 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 Looks pretty good to me. I think it's actually a little cleaner now in that callers of sleepq_switch() have to lock sched_lock. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org From owner-freebsd-threads@FreeBSD.ORG Wed Feb 15 10:20:14 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 8631016A420 for ; Wed, 15 Feb 2006 10:20:14 +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 17E9843D69 for ; Wed, 15 Feb 2006 10:20:09 +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 k1FAK8C2016526 for ; Wed, 15 Feb 2006 10:20:08 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1FAK8jS016525; Wed, 15 Feb 2006 10:20:08 GMT (envelope-from gnats) Date: Wed, 15 Feb 2006 10:20:08 GMT Message-Id: <200602151020.k1FAK8jS016525@freefall.freebsd.org> To: freebsd-threads@FreeBSD.org From: Marc Olzheim Cc: Subject: Re: kern/91266: [threads] Trying sleep, but thread marked as sleeping prohibited X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Marc Olzheim List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Feb 2006 10:20:14 -0000 The following reply was made to PR kern/91266; it has been noted by GNATS. From: Marc Olzheim To: bug-followup@FreeBSD.org, ricardo.areis@gmail.com Cc: Marc Olzheim Subject: Re: kern/91266: [threads] Trying sleep, but thread marked as sleeping prohibited Date: Wed, 15 Feb 2006 11:10:29 +0100 Well, it's an issue too on my dual opteron running FreeBSD hammer.stack.nl 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #8: Mon Feb 13 13:59:38 CET 2006 And it has been for some time now... I finally have dumps of it if anyone is interested in debug output.. Marc From owner-freebsd-threads@FreeBSD.ORG Thu Feb 16 02:46:04 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 BF9C116A420; Thu, 16 Feb 2006 02:46:04 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7679B43D48; Thu, 16 Feb 2006 02:46:04 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from freefall.freebsd.org (davidxu@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k1G2k4LD094027; Thu, 16 Feb 2006 02:46:04 GMT (envelope-from davidxu@freefall.freebsd.org) Received: (from davidxu@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1G2k4HI094023; Thu, 16 Feb 2006 02:46:04 GMT (envelope-from davidxu) Date: Thu, 16 Feb 2006 02:46:04 GMT From: David Xu Message-Id: <200602160246.k1G2k4HI094023@freefall.freebsd.org> To: garry@NetworkPhysics.COM, davidxu@FreeBSD.org, freebsd-threads@FreeBSD.org 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 List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Feb 2006 02:46:04 -0000 Synopsis: [kernel] [patch] multi-threaded process hangs in kernel in fork() State-Changed-From-To: open->patched State-Changed-By: davidxu State-Changed-When: Thu Feb 16 02:44:32 UTC 2006 State-Changed-Why: A fix has been committed in -HEAD, I will MFC it if there is no problem. http://www.freebsd.org/cgi/query-pr.cgi?pr=89262 From owner-freebsd-threads@FreeBSD.ORG Thu Feb 16 02:51:27 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 7667716A422; Thu, 16 Feb 2006 02:51:27 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1623D43D45; Thu, 16 Feb 2006 02:51:27 +0000 (GMT) (envelope-from davidxu@FreeBSD.org) Received: from freefall.freebsd.org (davidxu@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k1G2pQXV094365; Thu, 16 Feb 2006 02:51:26 GMT (envelope-from davidxu@freefall.freebsd.org) Received: (from davidxu@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k1G2pQir094361; Thu, 16 Feb 2006 02:51:26 GMT (envelope-from davidxu) Date: Thu, 16 Feb 2006 02:51:26 GMT From: David Xu Message-Id: <200602160251.k1G2pQir094361@freefall.freebsd.org> To: thomas.lange@techunity.de, davidxu@FreeBSD.org, freebsd-threads@FreeBSD.org Cc: Subject: Re: threads/78660: Java hangs unkillably in STOP state after fork() X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Feb 2006 02:51:27 -0000 Synopsis: Java hangs unkillably in STOP state after fork() State-Changed-From-To: open->patched State-Changed-By: davidxu State-Changed-When: Thu Feb 16 02:47:34 UTC 2006 State-Changed-Why: A fix has been committed in -HEAD, I will MFC it if there is no problem. http://www.freebsd.org/cgi/query-pr.cgi?pr=78660