Date: Mon, 09 Feb 2015 16:40:36 -0500 From: randall <rrs@freebsd.org> To: John Baldwin <jhb@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r278469 - in head/sys: kern sys Message-ID: <54D92954.1020702@freebsd.org> In-Reply-To: <1619204.FQlXD7hmMU@ralph.baldwin.cx> References: <201502091919.t19JJjbg061542@svn.freebsd.org> <1619204.FQlXD7hmMU@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
John: See below.. On 2/9/15 3:09 PM, John Baldwin wrote: > On Monday, February 09, 2015 07:19:45 PM Randall Stewart wrote: >> Author: rrs >> Date: Mon Feb 9 19:19:44 2015 >> New Revision: 278469 >> URL: https://svnweb.freebsd.org/changeset/base/278469 >> >> Log: >> This fixes two conditions that can incur when migration >> is being done in the callout code and harmonizes the macro >> use.: >> 1) The callout_active() will lie. Basically if a migration >> is occuring and the callout is about to expire and the >> migration has been deferred, the callout_active will no >> longer return true until after the migration. This confuses >> and breaks callers that are doing callout_init(&c, 1); such >> as TCP. >> 2) The migration code had a bug in it where when migrating, if >> a two calls to callout_reset came in and they both collided with >> the callout on the wheel about to run, then the second call to >> callout_reset would corrupt the list the callout wheel uses >> putting the callout thread into a endless loop. >> 3) Per imp, I have fixed all the macro occurance in the code that >> were for the most part being ignored. >> >> Phabricator D1711 and looked at by lstewart and jhb and sbruno. >> Reviewed by: kostikbel, imp, adrian, hselasky >> MFC after: 3 days >> Sponsored by: Netflix Inc. > Thank you guys for working together to fix the migration race in a way > that lets CALLOUT_MPSAFE timers use multiple CPUs still. Your very much welcome.. it was a fun bug to track down :-) > > I do think that callout_drain_async() would also be useful to add. Well, I have been thinking about this, and I do think it will be easy to add though I did not want to further pollute the commit with new features. I will see about working on it here in the next few weeks :-) R >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54D92954.1020702>