Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Apr 2010 21:12:33 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Jilles Tjoelker <jilles@stack.nl>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: so_rcv_sx, deadlkres, SIGSTOP
Message-ID:  <20100404181233.GH2415@deviant.kiev.zoral.com.ua>
In-Reply-To: <20100404175140.GB40499@stack.nl>
References:  <20100404175140.GB40499@stack.nl>

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

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

On Sun, Apr 04, 2010 at 07:51:40PM +0200, Jilles Tjoelker wrote:
> The SX locks so_snd_sx and so_rcv_sx can be legitimately held for
> arbitrary amounts of time, while waiting until a send or recv is
> possible. Any other threads wanting to send/recv on the socket will
> sleep interruptibly on the corresponding SX. If deadlkres is activated,
> it may detect a deadlock even though there is no problem.
>=20
> If a SIGSTOP or similar comes in while waiting until send/recv is
> possible, the SX is held across the suspension and noone will be able to
> send/recv on the socket until the process is resumed. On the other hand
> a thread waiting for the SX can be suspended without harm. Adding PBDRY
> to various sleeps may help but may also introduce other problems
> (SIGSTOP disturbing the functioning of the process more, possibly with
> stuff like SO_RCVTIMEO).
Could you, please, elaborate on this (interaction between PBDRY and some
socket timeout stuff) ?

>=20
> Example (using the fact that fifos are implemented using sockets):
>=20
> term1% mkfifo testfifo
> term1% cat >testfifo
>=20
> term2% cat testfifo
>=20
> term3% cat testfifo
>=20
> Letting this sit for half an hour will trigger deadlkres.
>=20
> If the reader in term2 (started first) is suspended, the reader in term3
> will not get any input written to the fifo.
>=20
> --=20
> Jilles Tjoelker
> _______________________________________________
> freebsd-arch@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"

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

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

iEYEARECAAYFAku41pEACgkQC3+MBN1Mb4he3wCg5ANH7iJrD7n3ayYPwB7hVRbY
sWwAoMyZhD+fmq1vTWpYK4bzK0kcaD56
=aQm1
-----END PGP SIGNATURE-----

--ie9RhXlkjyREuElA--



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