freebsd-nq/share
Hans Petter Selasky 1a26c3c047 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
2015-01-15 15:32:30 +00:00
..
colldef
dict Remove ia64. 2014-07-07 00:27:09 +00:00
doc Integrate pjdfstest test suite execution into kyua 2014-11-03 07:18:42 +00:00
dtrace add my scripts to measure io latency per disk... 2014-08-09 20:40:03 +00:00
examples Honor MK_NETGRAPH for netgraph components 2014-11-27 00:10:16 +00:00
i18n
info
keys
man Major callout subsystem cleanup and rewrite: 2015-01-15 15:32:30 +00:00
me
misc Add myself (arybchik) to committers-src.dot 2015-01-08 05:46:16 +00:00
mk Add infrastructure to build dtb files from dts files. 2015-01-08 18:28:06 +00:00
mklocale
monetdef
msgdef
numericdef
security
sendmail
skel Install skeleton files based on the values of MK_MAIL and MK_TCSH 2014-11-28 22:07:16 +00:00
snmp
syscons Fix minor problems found while converting to NEWCONS format. 2014-08-18 20:58:17 +00:00
tabset
termcap Fix building termcap.db when make obj is run beforehand from a clean tree by 2014-12-10 23:18:11 +00:00
tests
timedef
vt Add forgotten keymap files fr.kbd and fr.acc.kbd to the FILES list. 2014-09-12 06:23:57 +00:00
zoneinfo Avoid ./ in zoneinfo entries in METALOG 2014-09-03 18:51:33 +00:00
Makefile Add WITHOUT_AUTOFS and WITHOUT_BSDCONFIG 2014-11-27 09:42:40 +00:00
Makefile.inc