diff options
Diffstat (limited to 'doc/info/slack.texinfo')
-rw-r--r-- | doc/info/slack.texinfo | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/doc/info/slack.texinfo b/doc/info/slack.texinfo new file mode 100644 index 0000000..692b7c9 --- /dev/null +++ b/doc/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 + |