Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Aug 2015 20:19:18 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Julien Charbon <jch@freebsd.org>
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:  <20150827171918.GM2072@kib.kiev.ua>
In-Reply-To: <55DF3A93.8080507@freebsd.org>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 27, 2015 at 06:28:03PM +0200, Julien Charbon wrote:
> 
>  Hi Konstantin,
> 
> 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 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).
> 
>  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.

Well, not that I am frustrated much.  Thank you for taking a look.
Did you read the patch attached to the PR ?



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