Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jan 2006 08:47:06 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Scott Long <scottl@freebsd.org>
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/kern subr_taskqueue.c
Message-ID:  <200601110847.08614.jhb@freebsd.org>
In-Reply-To: <200601110037.k0B0bDv4009424@repoman.freebsd.org>
References:  <200601110037.k0B0bDv4009424@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 10 January 2006 07:37 pm, Scott Long wrote:
> scottl      2006-01-11 00:37:13 UTC
>
>   FreeBSD src repository
>
>   Modified files:
>     sys/kern             subr_taskqueue.c
>   Log:
>   The interlock in taskqueue_terminate() is completely wrong for taskqueu=
es
>   that use spinlocks.  Remove it for now.

Eh?  It's waiting for the wakeup that comes from kthread_exit() after the=20
thread has exited which is locked via the proc lock.  Sleeping on the=20
taskqueue itself doesn't buy you anything.  (In fact, it might sleep=20
forever.)   The simplest solution might be to acquire the proc lock a lot=20
earlier before the taskqueue lock in this function so that you don't have t=
o=20
acquire it while holding the taskqueue lock since that is what gives you=20
problems.

=2D-=20
John Baldwin <jhb@FreeBSD.org> =A0<>< =A0http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" =A0=3D =A0http://www.FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200601110847.08614.jhb>