This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
realtime:documentation:technical_details:start [2023/09/26 08:30] costa.shul use kernel.org |
realtime:documentation:technical_details:start [2023/10/03 08:37] (current) costa.shul remove elixir |
||
|---|---|---|---|
| Line 4: | Line 4: | ||
| Therefore different mechanisms are implemented. Those mechanisms are partially available in mainline Linux. | Therefore different mechanisms are implemented. Those mechanisms are partially available in mainline Linux. | ||
| The PREEMPT_RT patch has been partially merged into the mainline Linux kernel, starting from version 5.15 ((Realtime preemption locking core merged [[https://lwn.net/Articles/867919/]])) | The PREEMPT_RT patch has been partially merged into the mainline Linux kernel, starting from version 5.15 ((Realtime preemption locking core merged [[https://lwn.net/Articles/867919/]])) | ||
| - | and activated with paramether | + | and enabled with ''CONFIG_PREEMPT_RT'' |
| - | [[https://elixir.bootlin.com/linux/latest/A/ident/CONFIG_PREEMPT_RT|CONFIG_PREEMPT_RT]] | + | |
| ---- | ---- | ||
| Line 35: | Line 34: | ||
| [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/mutex.h|Mutexes]] are implemented with | [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/mutex.h|Mutexes]] are implemented with | ||
| - | [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/rtmutex.h|rt mutexes]]. A rt_mutex implements [[https://elixir.bootlin.com/linux/latest/A/ident/rt_mutex_adjust_prio_chain|priority inheritance]] to avoid priority inversion. This also applies to sleeping spinlocks and rwlocks. However, the holder of a semaphore can be preempted but does not participate in priority inheritance. | + | [[https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/linux/rtmutex.h|rt mutexes]]. A rt_mutex implements priority inheritance (see ''rt_mutex_adjust_prio_chain'') to avoid priority inversion. This also applies to sleeping spinlocks and rwlocks. However, the holder of a semaphore can be preempted but does not participate in priority inheritance. |
| <WRAP rightalign>[[https://docs.kernel.org/locking/rt-mutex-design.html|Read more about rt_mutex]]</WRAP> | <WRAP rightalign>[[https://docs.kernel.org/locking/rt-mutex-design.html|Read more about rt_mutex]]</WRAP> | ||