From owner-freebsd-net@freebsd.org Fri Jul 15 08:43:10 2016 Return-Path: Delivered-To: freebsd-net@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E2C93B9A190; Fri, 15 Jul 2016 08:43:10 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (glebi.us [96.95.210.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id CC1D01AD8; Fri, 15 Jul 2016 08:43:10 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id u6F8h3fu070160 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 15 Jul 2016 01:43:04 -0700 (PDT) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id u6F8h3UA070159; Fri, 15 Jul 2016 01:43:03 -0700 (PDT) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@FreeBSD.org using -f Date: Fri, 15 Jul 2016 01:43:03 -0700 From: Gleb Smirnoff To: Matthew Macy Cc: Hans Petter Selasky , "freebsd-current@freebsd.org" , "freebsd-net@freebsd.org" Subject: Re: callout_drain either broken or man page needs updating Message-ID: <20160715084303.GD1076@FreeBSD.org> References: <155eca8bae0.d811ff9b567670.7363072028299444677@nextbsd.org> <087a20a1-2b8b-2050-c75f-78aac964b457@selasky.org> <155ecfa7c59.b552d7c5570767.4742594321655958557@nextbsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <155ecfa7c59.b552d7c5570767.4742594321655958557@nextbsd.org> User-Agent: Mutt/1.6.1 (2016-04-27) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Jul 2016 08:43:11 -0000 On Thu, Jul 14, 2016 at 10:14:46PM -0700, Matthew Macy wrote: M> > On 07/15/16 05:45, Matthew Macy wrote: M> > > glebius last commit needs some further re-work. M> > M> > Glebius commit needs to be backed out, at least the API change that M> > changes the return value when calling callout_stop() when the callout is M> > scheduled and being serviced. Simply because there is code out there, M> > like Mattew and others have discovered that is "refcounting" on the M> > callout_reset() and expecting that a subsequent callout_stop() will M> > return 1 to "unref". M> M> Yes. This is the cause of the "refcnt 0 on LLE at boot..." regression. No it isn't. The regression is caused by unintentional change of return value for never scheduled callout. The fix is now being tested, see PR 210884. The piece of ND6 code that Hans quotes isn't affected by change of return value for scheduled+running callout, since ND6 doesn't create callouts in this tricky state. -- Totus tuus, Glebius.