diff options
author | davide <davide@FreeBSD.org> | 2013-03-04 11:09:56 +0000 |
---|---|---|
committer | davide <davide@FreeBSD.org> | 2013-03-04 11:09:56 +0000 |
commit | 431035cf16837066ffdc5abc7e48a56cc1dfed5d (patch) | |
tree | 0c872a90fed688dcf8a42c76624fcacd6e02d513 /sys/conf/NOTES | |
parent | e52f997818951d22a197789d4aa9c32ab77ab70a (diff) | |
download | FreeBSD-src-431035cf16837066ffdc5abc7e48a56cc1dfed5d.zip FreeBSD-src-431035cf16837066ffdc5abc7e48a56cc1dfed5d.tar.gz |
- Make callout(9) tickless, relying on eventtimers(4) as backend for
precise time event generation. This greatly improves granularity of
callouts which are not anymore constrained to wait next tick to be
scheduled.
- Extend the callout KPI introducing a set of callout_reset_sbt* functions,
which take a sbintime_t as timeout argument. The new KPI also offers a
way for consumers to specify precision tolerance they allow, so that
callout can coalesce events and reduce number of interrupts as well as
potentially avoid scheduling a SWI thread.
- Introduce support for dispatching callouts directly from hardware
interrupt context, specifying an additional flag. This feature should be
used carefully, as long as interrupt context has some limitations
(e.g. no sleeping locks can be held).
- Enhance mechanisms to gather informations about callwheel, introducing
a new sysctl to obtain stats.
This change breaks the KBI. struct callout fields has been changed, in
particular 'int ticks' (4 bytes) has been replaced with 'sbintime_t'
(8 bytes) and another 'sbintime_t' field was added for precision.
Together with: mav
Reviewed by: attilio, bde, luigi, phk
Sponsored by: Google Summer of Code 2012, iXsystems inc.
Tested by: flo (amd64, sparc64), marius (sparc64), ian (arm),
markj (amd64), mav, Fabian Keil
Diffstat (limited to 'sys/conf/NOTES')
-rw-r--r-- | sys/conf/NOTES | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 5d26093..27c3380 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -259,6 +259,8 @@ options SX_NOINLINE # SMP Debugging Options: # +# CALLOUT_PROFILING enables rudimentary profiling of the callwheel data +# structure used as backend in callout(9). # PREEMPTION allows the threads that are in the kernel to be preempted by # higher priority [interrupt] threads. It helps with interactivity # and allows interrupt threads to run sooner rather than waiting. @@ -297,6 +299,9 @@ options LOCK_PROFILING options MPROF_BUFFERS="1536" options MPROF_HASH_SIZE="1543" +# Profiling for the callout(9) backend. +options CALLOUT_PROFILING + # Profiling for internal hash tables. options SLEEPQUEUE_PROFILING options TURNSTILE_PROFILING |