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 taskqueues
>   that use spinlocks.  Remove it for now.

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

-- 
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?200601110847.08614.jhb>