Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Sep 2010 16:23:14 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Rui Paulo <rpaulo@freebsd.org>
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:  <20100911132314.GZ2465@deviant.kiev.zoral.com.ua>
In-Reply-To: <201009111258.o8BCwViM097096@svn.freebsd.org>
References:  <201009111258.o8BCwViM097096@svn.freebsd.org>

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

--DHd0DHvhbdljNSqO
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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 Se=
p 11 12:51:01 2010	(r212464)
> +++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c	Sat Se=
p 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.
fasttrap_pid_enable() also does unlock, so it might be better to hold
the process immediately after pfind().

--DHd0DHvhbdljNSqO
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (FreeBSD)

iEYEARECAAYFAkyLgsIACgkQC3+MBN1Mb4jlVwCg48F2wwouG9NZcvAHlW/RulZC
lcYAnj6pianC5qnRWHzP9NxG5Z554qi7
=JC/b
-----END PGP SIGNATURE-----

--DHd0DHvhbdljNSqO--



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