Date: Fri, 28 Aug 2015 11:08:37 +0200 From: Julien Charbon <jch@freebsd.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, John Baldwin <jhb@freebsd.org> Subject: Re: svn commit: r286880 - head/sys/kern Message-ID: <55E02515.1010705@freebsd.org> In-Reply-To: <20150827171918.GM2072@kib.kiev.ua> References: <201508181015.t7IAFAex055889@repo.freebsd.org> <55DD69E5.4090904@selasky.org> <55DD74EB.30601@selasky.org> <55DE01F7.8040508@freebsd.org> <20150827104946.GH2072@kib.kiev.ua> <55DF3A93.8080507@freebsd.org> <20150827171918.GM2072@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --gVdgJKUhUhxHTrEfWuBxdan5WD5HD4iKr Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Hi Konstantin, On 27/08/15 19:19, Konstantin Belousov wrote: > On Thu, Aug 27, 2015 at 06:28:03PM +0200, Julien Charbon wrote: >> On 27/08/15 12:49, Konstantin Belousov wrote: >>> On Wed, Aug 26, 2015 at 08:14:15PM +0200, Julien Charbon wrote: >>>> As I said, I am not opposed to back out this change, callout(9) API= in >>>> mpsafe mode is a already complex/subtle API, it won't change too muc= h >>>> the current complexity. >>>> >>>> Let say that if nobody screams until Friday 8/28, I will put back >>>> r284245 and revert this change _and_ I will make this case clear in = the >>>> man page. >>> >>> [Replying to a random message in the whole set of conversations] >>> >>> There is one more case, besides TCP timers, which is equially, of not= >>> more, critical and sensitive WRT to the callout_stop(). Look at the >>> sys/kern/subr_sleepqueue.c:sleepq_check_timeout(). Stray return of >>> the false result from callout_stop() causes creation of the non-killa= ble >>> processes: the callout fired, we missed the wakeup and went to sleep= >>> by manually doing the context switch. Such thread cannot be woken up= =2E >>> >>> I suspect that your fix is a better approach than my attempt to look >>> at something similar at PR 200992 (may be not). >> >> This change (r286880) won't improve the PR 200992: >> >> r286880 only addresses a case where callout_stop() returns 1 instead = of >> 0. Thus the only thing that can do r286880 to PR 200992: >> >> - Don't change anything the issues >> - Worsen the issue >> >> Sorry to kill your hope of a simple and elegant fix for PR 200992. >=20 > Well, not that I am frustrated much. Thank you for taking a look. > Did you read the patch attached to the PR ? Right, I read it from here: https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D157915&action=3Ddif= f And I am not confident enough to say if it is the right way go. I became knowledgeable on callout calls from TCP timers (D2079 and D2763), but that's it. I would propose rrs (as he introduced the 'not_on_a_list' logic) and jhb for reviewing your patch. And unlike me (D3078), don't underestimate the callout complexity in mpsafe mode. :) -- Julien --gVdgJKUhUhxHTrEfWuBxdan5WD5HD4iKr Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJV4CUaAAoJEKVlQ5Je6dhxT2oIANsQTSZddyiNnTKS3DOv0un+ QWtRcKQenHlqZratYMCqqpsrBTHFhe2Fsr9JaJBJr5FWOLeKSCbpkQEpMqaLak3U TeYLY4vZpF3R+Jk1KcJ/Ph8h7wQ+2thSvv9txuWPwsvQMJ+G91R5L5yny3SQq+Bx D82PgawpqjaqQLho50VFtDgyVrlLEv4up0wrRZFR/XL4h6lCWeVd4b4IjEnlXwvT L0C+ALo6ClVfbp6W0K5c+ODV7h+ePCWb+luj5MbU81LleNEsOh2EyToDNw2Z6d3i 9tA8beNcudbQ7Ogdvy8W/wgVt13wphH2a7mOyo1159aEoYDMQx6JUXhTRliQzsc= =142B -----END PGP SIGNATURE----- --gVdgJKUhUhxHTrEfWuBxdan5WD5HD4iKr--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55E02515.1010705>