Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Sep 2010 14:50:55 +0100
From:      Rui Paulo <rpaulo@freebsd.org>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r212465 - head/sys/cddl/contrib/opensolaris/uts/common/dtrace
Message-ID:  <E9CAFD82-6E40-458F-8CE3-9A60404C5BDB@freebsd.org>
In-Reply-To: <20100911134623.GA2465@deviant.kiev.zoral.com.ua>
References:  <201009111258.o8BCwViM097096@svn.freebsd.org> <20100911132314.GZ2465@deviant.kiev.zoral.com.ua> <BBCBA5E6-BE22-4197-992C-3F7320EF2CF6@freebsd.org> <20100911134623.GA2465@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

On 11 Sep 2010, at 14:46, Kostik Belousov wrote:

> On Sat, Sep 11, 2010 at 02:36:26PM +0100, Rui Paulo wrote:
>> On 11 Sep 2010, at 14:23, Kostik Belousov wrote:
>>=20
>>> On Sat, Sep 11, 2010 at 12:58:31PM +0000, Rui Paulo wrote:
>>>> Author: rpaulo
>>>> Date: Sat Sep 11 12:58:31 2010
>>>> New Revision: 212465
>>>> URL: http://svn.freebsd.org/changeset/base/212465
>>>>=20
>>>> Log:
>>>> Avoid a LOR (sleepable after non-sleepable) in
>>>> fasttrap_tracepoint_enable().
>>>>=20
>>>> Sponsored by:	The FreeBSD Foundation
>>>>=20
>>>> Modified:
>>>> head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
>>>>=20
>>>> Modified: =
head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
>>>> =
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
>>>> --- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c	=
Sat Sep 11 12:51:01 2010	(r212464)
>>>> +++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c	=
Sat Sep 11 12:58:31 2010	(r212465)
>>>> @@ -591,7 +591,9 @@ fasttrap_tracepoint_enable(proc_t *p, fa
>>>> 	 * Before we make any modifications, make sure we've imposed a =
barrier
>>>> 	 * on the generation in which this probe was last modified.
>>>> 	 */
>>>> +	PROC_UNLOCK(p);
>>>> 	fasttrap_mod_barrier(probe->ftp_gen);
>>>> +	PROC_LOCK(p);
>>>>=20
>>>> 	bucket =3D =
&fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)];
>>>>=20
>>> I suspect that you should hold the process around unlocked region.
>>=20
>> The unlocked region in the diff ? You're saying I shouldn't =
unlock/lock here?
> No, I am saying that you should do _PHOLD before dropping process =
lock.

That makes a lot more sense. Will do it, thanks.

>=20
>>=20
>>> fasttrap_pid_enable() also does unlock, so it might be better to =
hold
>>> the process immediately after pfind().
>>=20
>> You mean use _PHOLD after pfind()?
> Yes.
>=20
>=20
> =
__________________________________________________________________________=
__________
> Use the link below to report this message as spam.
> https://lavabit.com/apps/teacher?sig=3D1329875&key=3D731402291
> =
__________________________________________________________________________=
__________

Regards,
--
Rui Paulo





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E9CAFD82-6E40-458F-8CE3-9A60404C5BDB>