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>