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-all mailing list