Date: Thu, 27 Aug 2015 13:49:46 +0300 From: Konstantin Belousov <kostikbel@gmail.com> To: Julien Charbon <jch@freebsd.org> Cc: Hans Petter Selasky <hp@selasky.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, John Baldwin <jhb@freebsd.org> Subject: Re: svn commit: r286880 - head/sys/kern Message-ID: <20150827104946.GH2072@kib.kiev.ua> In-Reply-To: <55DE01F7.8040508@freebsd.org> References: <201508181015.t7IAFAex055889@repo.freebsd.org> <55DD69E5.4090904@selasky.org> <55DD74EB.30601@selasky.org> <55DE01F7.8040508@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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 much > 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-killable processes: the callout fired, we missed the wakeup and went to sleep by manually doing the context switch. Such thread cannot be woken up. I suspect that your fix is a better approach than my attempt to look at something similar at PR 200992 (may be not).
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150827104946.GH2072>