aboutsummaryrefslogtreecommitdiffstats
path: root/info/slack.texinfo
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--info/slack.texinfo143
1 files changed, 143 insertions, 0 deletions
diff --git a/info/slack.texinfo b/info/slack.texinfo
new file mode 100644
index 0000000..692b7c9
--- /dev/null
+++ b/info/slack.texinfo
@@ -0,0 +1,143 @@
+1;2802;0c\input texinfo @c -*-texinfo-*-
+
+@c %**start of header
+@setfilename slack.info
+@settitle slack
+@afourpaper
+@documentencoding UTF-8
+@documentlanguage en
+@finalout
+@c %**end of header
+
+
+@dircategory Miscellaneous
+@direntry
+* slack: (slack). Control your timer slack
+@end direntry
+
+
+@copying
+Copyright @copyright{} 2014 Mattias Andrée
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+Texts. A copy of the license is included in the section entitled
+``GNU Free Documentation License''.
+@end quotation
+@end copying
+
+@ifnottex
+@node Top
+@top slack -- Control your timer slack
+@insertcopying
+@end ifnottex
+
+@titlepage
+@title slack
+@subtitle Control your timer slack
+@author by Mattias Andrée (maandree)
+
+@page
+@c @center `'
+@vskip 0pt plus 1filll
+@insertcopying
+@end titlepage
+
+@contents
+
+
+
+@menu
+* Overview:: Brief overview of @command{slack}.
+* Invoking:: Invocation of @command{slack}.
+* GNU Free Documentation License:: Copying and sharing this manual.
+@end menu
+
+
+
+@node Overview
+@chapter Overview
+
+Get the current timer slack value or spawn a new
+process with a new timer slack value. Timer slack
+is inherited to child processes.
+
+Timer slack allows the kernel to coalesce events so
+that the kernel does not need to which context as
+often. For example, if you have a lot timers
+@footnote{Timer slack affects more than timers.}
+but you only want 100 milliseconds accuracy (instead
+of 50 microsoconds accuracy which is the default) on
+your timers you can set your tiemr slack to 100
+milliseconds. If this is done the kernel can let a
+timer expire up to 100 milliseconds lot so it can
+expire at the same time as other timers that expire
+in the near future, this way the kernel will only
+have to which between kernel mode and user mode
+once. This can also have nice effects in user mode,
+if you have an @code{epoll} with @code{timerfd}:s,
+the epoll can return once and list multiple timers
+than expire within 100 milliseconds of each other.
+
+Note: real-time threads do not slack off.
+
+
+
+@node Invoking
+@chapter Invoking
+
+There are four ways to run @command{slack}:
+
+@table @command
+@item slack get
+Print the current process's timer slack in
+human-readable format.
+
+@item slack GET
+Print the current process's timer slack in
+machine-readable format, namely the timer
+slack in nanoseconds with digits only.
+
+@item slack reset [--fatal] [--] <command...>
+Start the specified command with default
+timer slack, which is determined by the
+timer slack of the proceess with PID 1.
+By default this is 50 microseconds.
+
+If @option{--fatal} is used, the specified
+command will not be executed if its timer
+slack cannot be set. If @option{--fatal}
+is not used, the specified command will be
+executed even if its timer slack cannot be
+set.
+
+@item slack <timer slack> [--fatal] [--] <command...>
+Start the specified command with a selected
+timer slack. The timer slack must be expressed
+as a integer optionally suffixed (without
+any blank space) by `n', `u' (or the micro
+character), `m', optionally in turn suffixed
+by `s', for nanoseconds, microseconds and
+milliseconds, respectively, `s' can be used
+for whole seconds. If no suffix is used,
+nanoseconds are assumed.
+
+If @option{--fatal} is used, the specified
+command will not be executed if its timer
+slack cannot be set. If @option{--fatal}
+is not used, the specified command will be
+executed even if its timer slack cannot be
+set.
+@end table
+
+
+
+@node GNU Free Documentation License
+@appendix GNU Free Documentation License
+@include fdl.texinfo
+
+@bye
+