User Tools

Site Tools


realtime:documentation:known_limitations

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
realtime:documentation:known_limitations [2016/12/02 14:02]
bigeasy [Code live patching on ARM]
realtime:documentation:known_limitations [2023/10/02 20:16] (current)
costa.shul - elixir
Line 1: Line 1:
 ====== Known Limitations ====== ====== Known Limitations ======
-Some environments are currently not working well with Preempt-RT. Here is an overview of known limitations and workarounds.+ 
 +Some environments are currently not working well with Preempt-RT. Here is an overview of known limitations and workarounds. ​[[realtime:​communication:​send_rt_patches|Patches]] fixing the known limitations are welcome! 
 + 
 +===== Disabled CONFIG_ options ===== 
 + 
 +Several features are disabled by CONFIG_PREEMPT_RT=y because of incompatibility. 
 + 
 +<WRAP center round todo 80%> 
 +A more detailed information,​ why a specific config option is deactivated,​ is required! 
 +</​WRAP>​ 
 + 
 + 
 +Disabled config options: 
 + 
 +  * CONFIG_TRANSPARENT_HUGEPAGE 
 +  * CONFIG_DRM_I915 
 +  * CONFIG_NUMA_BALANCING 
 +  * CONFIG_LEDS_TRIGGER_CPU 
 +  * CONFIG_KVM_MPIC (powerpc) 
 +  * CONFIG_OPROFILE (until v5.12-rc2-rt1) 
 +  * CONFIG_XEN (until v4.18-rc8-rt1) 
 +  * CONFIG_X86_POWERNOW_K8 (until v5.2.21-rt13) 
 +  * CONFIG_BCACHE (until v5.6.17-rt10) 
 +  * CONFIG_HIGHMEM (mips, powerpc, until v5.10-rc1-rt2) 
 +  * CONFIG_RT_GROUP_SCHED (until v5.15-rc2-rt3) 
 +  * CONFIG_CPUMASK_OFFSTACK (until 5.4.5-rt3)
  
 ===== Platforms ===== ===== Platforms =====
Line 21: Line 46:
 This means "jump labels"​ support is deactivated because it may be used for instance by changing scheduler options. This means "jump labels"​ support is deactivated because it may be used for instance by changing scheduler options.
 kprobe and kgdb is also patching code at run time but are not disabled. They should only be used in a development environment for debug so it should be safe. kprobe and kgdb is also patching code at run time but are not disabled. They should only be used in a development environment for debug so it should be safe.
 +
 +==== pthread_cond_{wait|signal} ====
 +The //​pthread_cond_t//​ variable in glibc implementation contains a mutex. This mutex can not be initialized as PI. 
 +More information can be found in [[https://​sourceware.org/​bugzilla/​show_bug.cgi?​id=11588|glibc'​s bug report]].
 +
 +==== EFI ====
 +[[https://​elixir.bootlin.com/​linux/​latest/​A/​ident/​CONFIG_EFI_DISABLE_RUNTIME|EFI runtime services are disabled]] because using them may case high latencies. This includes accessing the RTC device or updating the variables.
 +If you need to use the EFI runtime services add **efi=runtime** to the kernel command line.
 +
 +==== Memory compaction ====
 +With CONFIG_COMPACTION=y the kernel may change the physical address for an existing virtual address. This may lead to a minor page fault and may happen even to pages which are protected with //​mlock()//​.
 +In order to avoid memory compaction on //mlock()// pages exclude them via 
 +
 +  echo 0 > /​proc/​sys/​vm/​compact_unevictable_allowed
realtime/documentation/known_limitations.1480687379.txt.gz · Last modified: 2016/12/02 14:02 by bigeasy