Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 May 2009 18:22:51 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        kmacy@FreeBSD.org
Cc:        src-committers@FreeBSD.org, jhb@FreeBSD.org, svn-src-user@FreeBSD.org
Subject:   Re: svn commit: r192604 - in user/kmacy/releng_7_2_fcs/sys: dev/hwpmc sys
Message-ID:  <20090526.182251.-409398290.imp@bsdimp.com>
In-Reply-To: <3c1674c90905261118y282d9b0fn7d54630f507d8363@mail.gmail.com>
References:  <200905222145.n4MLjhm3019802@svn.freebsd.org> <200905260830.36831.jhb@freebsd.org> <3c1674c90905261118y282d9b0fn7d54630f507d8363@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <3c1674c90905261118y282d9b0fn7d54630f507d8363@mail.gmail.co=
m>
            Kip Macy <kmacy@freebsd.org> writes:
: On Tue, May 26, 2009 at 5:30 AM, John Baldwin <jhb@freebsd.org> wrote=
:
: > On Friday 22 May 2009 5:45:43 pm Kip Macy wrote:
: >> Author: kmacy
: >> Date: Fri May 22 21:45:43 2009
: >> New Revision: 192604
: >> URL: http://svn.freebsd.org/changeset/base/192604
: >>
: >> Log:
: >> =A0 - remove pmc_kthread_mtx
: >> =A0 - replace sleep/wakeup on kthread with a condvar
: >
: > If you do not sleep on the kthread/kproc when waiting for a kthread=
 to
: > exit, then you open up a race window. =A0Usually this matters more =
for
: > any kthreads that live in a module since the race allows the module=
 to
: > be unmapped before the thread is finished executing code from the m=
odule
: > resulting in a fatal page fault in the kernel.
: =

: =

: Yes, that is why the kthread explicitly calls cv_signal after clearin=
g
: the kthread pointer.

The race here is that any kthread is still executing code after the
module is unloaded.  This fix doesn't solve that race, since the only
way to solve it is to have the scheduler tell you when the thread is
gone, which is what the sleep/wakup on the kthread does.

Warner



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