Date: Tue, 14 Feb 2006 19:10:07 GMT From: John Baldwin <jhb@freebsd.org> To: freebsd-threads@FreeBSD.org Subject: Re: threads/89262: [kernel] [patch] multi-threaded process hangs in kernel in fork() Message-ID: <200602141910.k1EJA7Gt012817@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR threads/89262; it has been noted by GNATS. From: John Baldwin <jhb@freebsd.org> To: David Xu <davidxu@freebsd.org> 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 <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602141910.k1EJA7Gt012817>