From 1643002398dcafe8697328435d223074ae045d7c Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 26 Feb 2016 08:39:05 +0100 Subject: [PATCH] more smaller updates to the documentation --- doc/Development.md | 4 ++++ doc/LiveSystem.md | 4 ++-- doc/Tuning.md | 25 ++++++++++++++----------- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/doc/Development.md b/doc/Development.md index c91ecd5d9..c0531ad7e 100644 --- a/doc/Development.md +++ b/doc/Development.md @@ -3,6 +3,10 @@ Developement is currently coordinated by Steffen Vogel using [GitHub](http://github.com/RWTH-ACS/S2SS). Please feel free to submit pull requests or bug reports. +## Shared library: libs2ss + +S2SS is split into a shared library called libs2ss and a couple of executables (`s2ss-server`, `s2ss-pipe`, `s2ss-test`, `s2ss-signal`) which are linked agains the library. + ## Extensibilty There are two main places where S2SS can easily extended: diff --git a/doc/LiveSystem.md b/doc/LiveSystem.md index 86d5748fd..714e884bb 100644 --- a/doc/LiveSystem.md +++ b/doc/LiveSystem.md @@ -2,6 +2,6 @@ As described in the [Tuning](Tuning) page, a carefull setup of the underlying system is essential to get optimal performance. -At ACS, we are using a Fedora-based Live system which is optomized for real time critical workloads. +At ACS, we are using a Fedora-based Live system which is optomized for real-time critical workloads. -Take a look at the [liveusb](contrib/liveusb) directory for the configuration and scripts we are using. +Take a look at the `contrib/liveusb/` directory for the configuration and scripts we are using. diff --git a/doc/Tuning.md b/doc/Tuning.md index 5132b249e..495f6e532 100644 --- a/doc/Tuning.md +++ b/doc/Tuning.md @@ -6,24 +6,27 @@ For minimum latency several kernel and driver settings can be optimized. A [PREEMPT_RT patched Linux](https://rt.wiki.kernel.org/index.php/Main_Page) kernel is recommended. Precompiled kernels for Fedora can be found here: http://ccrma.stanford.edu/planetccrma/software/ -- Map NIC IRQs => see setting `affinity` +- Install `tuned` package and activate the `realtime` profile. This profile will: + - Reserve some CPU cores solely for S2SS (Kernel cmdline: `isolcpus=[cpu_numbers]`) + - Activate sub-profiles: + - `network-latency` + - `latency-performance` + - See `/etc/tuned/realtime-variables.conf` + - See `/usr/lib/tuned/realtime/` -- Map Tasks => see setting `affinity` - - Kernel command line: isolcpus=[cpu_number] - -- Increase priority of server task (nice(2)) => see setting `priority` - -- Increase socket priority +- S2SS configuration: + - `affinity`: Maps network card IRQs and threads to isolated cores + - `priority`: Increases priority of network packets and threads - Configure NIC interrupt coalescence with `ethtool`: - $ ethtool -C|--coalesce devname [adaptive-rx on|off] [adaptive-tx on|off] ... + $ ethtool -C|--coalesce devname [adaptive-rx on|off] [adaptive-tx on|off] ... - Configure NIC kernel driver in `/etc/modprobe.d/e1000e.conf`: - # More conservative interrupt throttling for better latency - # https://www.kernel.org/doc/Documentation/networking/e1000e.txt - option e1000e InterruptThrottleRate= + # More conservative interrupt throttling for better latency + # https://www.kernel.org/doc/Documentation/networking/e1000e.txt + option e1000e InterruptThrottleRate= ## Hardware