Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
embedded_systems:ethercat:test_and_tune_rt [2018-12-14 13:45]
mgehrig2 angelegt
embedded_systems:ethercat:test_and_tune_rt [2019-02-12 16:01] (aktuell)
mgehrig2
Zeile 20: Zeile 20:
 ''​max. jitter OS = min jitter EtherCAT bus''​ ''​max. jitter OS = min jitter EtherCAT bus''​
  
-See [[embedded_systems:​ethercat:​distributed_clocks|Distributed Clocks]] for more information.+If the master cannot guarantee a stable clock, the masterShift mode is recommended. 
 + 
 +See [[embedded_systems:​ethercat:​understanding_ethercat:​understanding_sync_with_dc|Distributed Clocks]] for more information. 
 + 
 + 
 +===== Measure RT Performance ===== 
 +==== Cyclictest ==== 
 +The Cyclictest is a software that can be used to easily measure the maximum jitter of a system. 
 +[[software:​linux:​cyclictest:​start|This page]] explains how to install and use the software. 
 +=== Quick Measurement === 
 +''​sudo ./​cyclictest -p 80 -t5 -n''​ 
 + 
 + 
 +===== Improve RT performance =====  
 +If the RT performance is not sufficient, the maximum jitter could be reduced with the following measures: 
 + 
 +==== Intel Scaling Governor ==== 
 +Modern processors change the CPU frequency depending on the load to save power. 
 +With an RT-OS this can lead to increased jitter. 
 +If the frequency is fixed, the RT performance can be improved. 
 +ATTENTION: If the CPU is fixed at a high temperature,​ the CPU can run hot. If the Governor is changed manually, the CPU temperature should be monitored! 
 + 
 +The frequency is controlled by the OS by a [[https://​wiki.archlinux.org/​index.php/​CPU_frequency_scaling#​Scaling_governors|scaling governor]]. 
 +The ''​performance''​ governor should run the cpu at the maximum frequency. 
 + 
 +To get the current active governor:​\\ 
 +''​cpupower frequency-info''​ 
 + 
 +To set the governor:​\\ 
 +''​sudo cpupower frequency-set -g powersave''​ 
 +  
 + 
 +==== Intel cstates ==== 
 +Intel cstates indicate the power saving state of the processor. 
 +These states can be locked with kernel parameters on the C0 state (no power saving measures). 
 + 
 +{{:​embedded_systems:​ethercat:​controlling_processor_c-state_usage_in_linux_v1.1_nov2013.pdf|Background information}} 
 + 
 +Display current kernel parameters:​\\ 
 +''​cat /​proc/​cmdline''​ 
 + 
 +Add the following [[software:​linux:​linux_os:​kernel_parameter|kernel parameters]]:​ 
 + 
 +  * cpuidle.off=1 
 +  * intel_idle.max_cstate=0 
 +