Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Sep 2010 14:36:26 +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:  <BBCBA5E6-BE22-4197-992C-3F7320EF2CF6@freebsd.org>
In-Reply-To: <20100911132314.GZ2465@deviant.kiev.zoral.com.ua>
References:  <201009111258.o8BCwViM097096@svn.freebsd.org> <20100911132314.GZ2465@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On 11 Sep 2010, at 14:23, Kostik Belousov wrote:

> 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.

The unlocked region in the diff ? You're saying I shouldn't unlock/lock =
here?

> fasttrap_pid_enable() also does unlock, so it might be better to hold
> the process immediately after pfind().

You mean use _PHOLD after pfind()?

Regards,
--
Rui Paulo





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BBCBA5E6-BE22-4197-992C-3F7320EF2CF6>