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] – angelegt mgehrig2embedded_systems:ethercat:test_and_tune_rt [2023-04-11 11:12] (aktuell) Urs Graf
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:realtime:cyclictest|Cyclictest]] 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 
 +