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 [2017/03/28 15:10]
bigeasy Add the pthread_cond problem
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 25: Line 50:
 The //​pthread_cond_t//​ variable in glibc implementation contains a mutex. This mutex can not be initialized as PI.  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]]. 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.1490713803.txt.gz · Last modified: 2017/03/28 15:10 by bigeasy