Module: xenomai-forge
Branch: next
Commit: 7cbcb40efe80018332b78df382481e7f1b60f4fb
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=7cbcb40efe80018332b78df382481e7f1b60f4fb

Author: Philippe Gerum <r...@xenomai.org>
Date:   Sun Aug  3 16:36:57 2014 +0200

doc/autotune: add manpage for the auto-tuner

---

 doc/asciidoc/Makefile.am        |   46 ++++++++--------
 doc/asciidoc/Makefile.in        |   46 ++++++++--------
 doc/asciidoc/man1/autotune.adoc |  112 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 160 insertions(+), 44 deletions(-)

diff --git a/doc/asciidoc/Makefile.am b/doc/asciidoc/Makefile.am
index bd27871..98eaefb 100644
--- a/doc/asciidoc/Makefile.am
+++ b/doc/asciidoc/Makefile.am
@@ -1,60 +1,62 @@
 HTML_DOCS =                                    \
+       html/MIGRATION                          \
+       html/README.APPLICATIONS                \
+       html/README.INSTALL                     \
+       html/TROUBLESHOOTING.COBALT             \
+       html/TROUBLESHOOTING.MERCURY            \
+       html/asciidoc-icons                     \
+       html/asciidoc-icons/callouts            \
+       html/man1/autotune                      \
        html/man1/clocktest                     \
-       html/man1/slackspot                     \
        html/man1/dohell                        \
        html/man1/latency                       \
        html/man1/rtcanconfig                   \
        html/man1/rtcanrecv                     \
        html/man1/rtcansend                     \
+       html/man1/slackspot                     \
        html/man1/switchtest                    \
-       html/man1/xeno-config                   \
-       html/man1/xeno-test                     \
        html/man1/xeno                          \
-       html/README.INSTALL                     \
-       html/README.APPLICATIONS                \
-       html/TROUBLESHOOTING.COBALT             \
-       html/TROUBLESHOOTING.MERCURY            \
-       html/MIGRATION                          \
-       html/asciidoc-icons                     \
-       html/asciidoc-icons/callouts
+       html/man1/xeno-config                   \
+       html/man1/xeno-test
 
 PDF_DOCS =                             \
-       README.INSTALL.pdf              \
+       MIGRATION.pdf                   \
        README.APPLICATIONS.pdf         \
+       README.INSTALL.pdf              \
        TROUBLESHOOTING.COBALT.pdf      \
-       TROUBLESHOOTING.MERCURY.pdf     \
-       MIGRATION.pdf
+       TROUBLESHOOTING.MERCURY.pdf
 
 TXT_DOCS =                             \
-       README.INSTALL.txt              \
+       MIGRATION.txt                   \
        README.APPLICATIONS.txt         \
+       README.INSTALL.txt              \
        TROUBLESHOOTING.COBALT.txt      \
-       TROUBLESHOOTING.MERCURY.txt     \
-       MIGRATION.txt
+       TROUBLESHOOTING.MERCURY.txt
 
 MAN1_DOCS =                    \
+       man1/autotune.1         \
        man1/clocktest.1        \
        man1/cyclictest.1       \
+       man1/dohell.1           \
        man1/latency.1          \
        man1/rtcanconfig.1      \
        man1/rtcanrecv.1        \
        man1/rtcansend.1        \
+       man1/slackspot.1        \
        man1/switchtest.1       \
-       man1/xeno.1             \
        man1/xeno-config.1      \
        man1/xeno-test.1        \
-       man1/dohell.1           \
-       man1/slackspot.1
+       man1/xeno.1
 
 EXTRA_DIST :=                          \
-       README.INSTALL.adoc             \
+       MIGRATION.adoc                  \
        README.APPLICATIONS.adoc        \
+       README.INSTALL.adoc             \
        TROUBLESHOOTING.COBALT.adoc     \
        TROUBLESHOOTING.MERCURY.adoc    \
-       MIGRATION.adoc                  \
        plaintext.conf                  \
-       plaintext_postproc.awk          \
        plaintext.xsl                   \
+       plaintext_postproc.awk          \
        $(MAN1_DOCS:%.1=%.adoc)
 
 if !XENO_BUILD_DOC
diff --git a/doc/asciidoc/Makefile.in b/doc/asciidoc/Makefile.in
index e87bd6f..15ea9ef 100644
--- a/doc/asciidoc/Makefile.in
+++ b/doc/asciidoc/Makefile.in
@@ -295,62 +295,64 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 HTML_DOCS = \
+       html/MIGRATION                          \
+       html/README.APPLICATIONS                \
+       html/README.INSTALL                     \
+       html/TROUBLESHOOTING.COBALT             \
+       html/TROUBLESHOOTING.MERCURY            \
+       html/asciidoc-icons                     \
+       html/asciidoc-icons/callouts            \
+       html/man1/autotune                      \
        html/man1/clocktest                     \
-       html/man1/slackspot                     \
        html/man1/dohell                        \
        html/man1/latency                       \
        html/man1/rtcanconfig                   \
        html/man1/rtcanrecv                     \
        html/man1/rtcansend                     \
+       html/man1/slackspot                     \
        html/man1/switchtest                    \
-       html/man1/xeno-config                   \
-       html/man1/xeno-test                     \
        html/man1/xeno                          \
-       html/README.INSTALL                     \
-       html/README.APPLICATIONS                \
-       html/TROUBLESHOOTING.COBALT             \
-       html/TROUBLESHOOTING.MERCURY            \
-       html/MIGRATION                          \
-       html/asciidoc-icons                     \
-       html/asciidoc-icons/callouts
+       html/man1/xeno-config                   \
+       html/man1/xeno-test
 
 PDF_DOCS = \
-       README.INSTALL.pdf              \
+       MIGRATION.pdf                   \
        README.APPLICATIONS.pdf         \
+       README.INSTALL.pdf              \
        TROUBLESHOOTING.COBALT.pdf      \
-       TROUBLESHOOTING.MERCURY.pdf     \
-       MIGRATION.pdf
+       TROUBLESHOOTING.MERCURY.pdf
 
 TXT_DOCS = \
-       README.INSTALL.txt              \
+       MIGRATION.txt                   \
        README.APPLICATIONS.txt         \
+       README.INSTALL.txt              \
        TROUBLESHOOTING.COBALT.txt      \
-       TROUBLESHOOTING.MERCURY.txt     \
-       MIGRATION.txt
+       TROUBLESHOOTING.MERCURY.txt
 
 MAN1_DOCS = \
+       man1/autotune.1         \
        man1/clocktest.1        \
        man1/cyclictest.1       \
+       man1/dohell.1           \
        man1/latency.1          \
        man1/rtcanconfig.1      \
        man1/rtcanrecv.1        \
        man1/rtcansend.1        \
+       man1/slackspot.1        \
        man1/switchtest.1       \
-       man1/xeno.1             \
        man1/xeno-config.1      \
        man1/xeno-test.1        \
-       man1/dohell.1           \
-       man1/slackspot.1
+       man1/xeno.1
 
 EXTRA_DIST := \
-       README.INSTALL.adoc             \
+       MIGRATION.adoc                  \
        README.APPLICATIONS.adoc        \
+       README.INSTALL.adoc             \
        TROUBLESHOOTING.COBALT.adoc     \
        TROUBLESHOOTING.MERCURY.adoc    \
-       MIGRATION.adoc                  \
        plaintext.conf                  \
-       plaintext_postproc.awk          \
        plaintext.xsl                   \
+       plaintext_postproc.awk          \
        $(MAN1_DOCS:%.1=%.adoc)
 
 @XENO_BUILD_DOC_FALSE@HTML_DOCSDIR = $(srcdir)/../prebuilt/
diff --git a/doc/asciidoc/man1/autotune.adoc b/doc/asciidoc/man1/autotune.adoc
new file mode 100644
index 0000000..4c93ae6
--- /dev/null
+++ b/doc/asciidoc/man1/autotune.adoc
@@ -0,0 +1,112 @@
+// ** The above line should force tbl to be a preprocessor **
+// Man page for autotune
+//
+// Copyright (C) 2014 Philippe Gerum <r...@xenomai.org>
+//
+// You may distribute under the terms of the GNU General Public
+// License as specified in the file COPYING that comes with the
+// Xenomai distribution.
+//
+//
+AUTOTUNE(1)
+==========
+:doctype: manpage
+:revdate: 2014/08/03
+:man source: Xenomai
+:man version: {xenover}
+:man manual: Xenomai Manual
+
+NAME
+----
+autotune - Calibrate the Xenomai core clock timer
+
+SYNOPSIS
+---------
+*autotune* [ options ]
+
+DESCRIPTION
+------------
+*autotune* is a utility to determine the best calibration values (aka
+ _gravity triplet_) for the core clock timer.
+
+The time spent traversing the kernel code from the low-level Xenomai
+timer handler until the kernel-based client handler is invoked, is
+shorter than the time required to schedule in a kernel thread
+instead. It takes even more time to switch in a user-space thread,
+which entails changing the current memory address space, performing
+potentially time-consuming MMU-related operations.
+
+For this reason, Xenomai differentiates timers on the target context
+they activate, among IRQ(handler), kernel and user threads,
+anticipating the next timer shot accordingly, so that such context is
+activated as close as possible to the ideal time. This anticipation is
+called the _gravity_ of the clock serving the timer, which is actually
+a triplet representing the three possible types of contexts the timer
+can activate.
+
+Therefore, the gravity is a static adjustment value to account for the
+basic latency of the target system for responding to timer events, as
+perceived by the client code waiting for the wake up events. Such
+latency is increased by additional factors, such as:
+
+- bus or CPU cache latency,
+- delay required to program the timer chip for the next shot,
+- code running with interrupts disabled on the CPU to receive the IRQ,
+- inter-processor serialization (_spinlocks_).
+
+*autotune* runs a series of internal calibration tests for estimating
+the most appropriate gravity values for its real-time clock timer,
+retaining the final values.
+
+[IMPORTANT]
+*autotune* requires the *CONFIG_XENO_OPT_AUTOTUNE* option to be
+ enabled in the kernel configuration.
+
+OPTIONS
+--------
+*autotune* accepts the following options:
+
+*--irq*::
+Estimate the IRQ gravity value, which is the shortest time the
+platform needs to deliver an IRQ to a Xenomai interrupt handler in
+kernel space.
+
+*--kernel*::
+Estimate the kernel gravity value, which is the shortest time the
+platform needs to deliver an IRQ to a RTDM task running in kernel
+space. This delay includes the context switching time.
+
+*--user*::
+Estimate the user gravity value, which is the shortest time the
+platform needs to deliver an IRQ to a user-space task/thread running
+in a Xenomai application process. This delay includes the context
+switching time.
+
+*--reset*::
+Reset the gravity values to their factory defaults. These defaults
+are statically defined by the Xenomai platform code.
+
+*--nohog*::
+Disable load generation while auto-tuning. *autotune* runs a simple
+load generator internally in parallel to estimating the latency, in
+order to eliminate irregular delays which tend to appear on fully idle
+systems.  Therefore, keeping the load generation enabled most often
+leads to a more accurate estimation.
+
+*--quiet*::
+Tame down verbosity of the auto-tuner.
+
+*--help*::
+Display a short help.
+
+If none of +--irq+, +--kernel+ or +--user+ is given, an estimation is
+done for each of them in sequence.
+
+VERSIONS
+--------
+
+*autotune* appeared in Xenomai 3.0 for the _Cobalt_ real-time core.
+
+AUTHOR
+-------
+*autotune* was written by Philippe Gerum <r...@xenomai.org>.


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to