svn commit: r277213 - in head: share/man/man9 sys/kern sys/ofed/include/linux sys/sys
John Baldwin
jhb at FreeBSD.org
Thu Jan 15 15:53:45 UTC 2015
On 1/15/15 10:32 AM, Hans Petter Selasky wrote:
> Author: hselasky
> Date: Thu Jan 15 15:32:30 2015
> New Revision: 277213
> URL: https://svnweb.freebsd.org/changeset/base/277213
>
> Log:
> Major callout subsystem cleanup and rewrite:
> - Close a migration race where callout_reset() failed to set the
> CALLOUT_ACTIVE flag.
> - Callout callback functions are now allowed to be protected by
> spinlocks.
> - Switching the callout CPU number cannot always be done on a
> per-callout basis. See the updated timeout(9) manual page for more
> information.
> - The timeout(9) manual page has been updated to reflect how all the
> functions inside the callout API are working. The manual page has
> been made function oriented to make it easier to deduce how each of
> the functions making up the callout API are working without having
> to first read the whole manual page. Group all functions into a
> handful of sections which should give a quick top-level overview
> when the different functions should be used.
> - The CALLOUT_SHAREDLOCK flag and its functionality has been removed
> to reduce the complexity in the callout code and to avoid problems
> about atomically stopping callouts via callout_stop(). If someone
> needs it, it can be re-added. From my quick grep there are no
> CALLOUT_SHAREDLOCK clients in the kernel.
> - A new callout API function named "callout_drain_async()" has been
> added. See the updated timeout(9) manual page for a complete
> description.
> - Update the callout clients in the "kern/" folder to use the callout
> API properly, like cv_timedwait(). Previously there was some custom
> sleepqueue code in the callout subsystem, which has been removed,
> because we now allow callouts to be protected by spinlocks. This
> allows us to tear down the callout like done with regular mutexes,
> and a "td_slpmutex" has been added to "struct thread" to atomically
> teardown the "td_slpcallout". Further the "TDF_TIMOFAIL" and
> "SWT_SLEEPQTIMO" states can now be completely removed. Currently
> they are marked as available and will be cleaned up in a follow up
> commit.
> - Bump the __FreeBSD_version to indicate kernel modules need
> recompilation.
> - There has been several reports that this patch "seems to squash a
> serious bug leading to a callout timeout and panic".
>
> Kernel build testing: all architectures were built
> MFC after: 2 weeks
> Differential Revision: https://reviews.freebsd.org/D1438
> Sponsored by: Mellanox Technologies
> Reviewed by: jhb, adrian, sbruno and emaste
Eh, I have not reviewed this at all. (I still plan to though.)
--
John Baldwin
More information about the svn-src-head
mailing list