Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Dec 2008 23:03:49 +0200
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Julian Elischer <julian@elischer.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r185647 - in head/sys: kern sys
Message-ID:  <20081205210349.GQ2038@deviant.kiev.zoral.com.ua>
In-Reply-To: <49399510.2030104@elischer.org>
References:  <200812052050.mB5KoOcV072648@svn.freebsd.org> <49399510.2030104@elischer.org>

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

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

On Fri, Dec 05, 2008 at 12:54:40PM -0800, Julian Elischer wrote:
> Konstantin Belousov wrote:
> >Author: kib
> >Date: Fri Dec  5 20:50:24 2008
> >New Revision: 185647
> >URL: http://svn.freebsd.org/changeset/base/185647
> >
> >Log:
> >  Several threads in a process may do vfork() simultaneously. Then, all
> >  parent threads sleep on the parent' struct proc until corresponding
> >  child releases the vmspace. Each sleep is interlocked with proc mutex =
of
> >  the child, that triggers assertion in the sleepq_add(). The assertion
> >  requires that at any time, all simultaneous sleepers for the channel u=
se
> >  the same interlock.
>=20
> We DID have a thread_single() in the fork code so that
> only one thread would proceed through the fork itself at a time.
> However it was removed last year as it proved to be a problem in some=20
> cases. Maybe we need to look at replacing it in some way.

Yes, I know, and I considered restoring conditional single-threading
for the vfork(). But it would immediately bring back all NFS client
problems, associated with this (at least sleeping with vnode lock held
and nfsbiod creation deadlocks).

This is a second problem caused by removal of the single-threading.
Nonetheless, I think that your change was right, and we shall just
fix a corner cases.

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

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

iEYEARECAAYFAkk5lzQACgkQC3+MBN1Mb4jDrwCfSHI2WPu10vxN2JOd4DKcCCvI
P9IAnjw6MosZ2AjszKnkkv/TER0JlOwi
=jl/g
-----END PGP SIGNATURE-----

--H2kTGx6mr3R59oXC--



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