Priority inversion

From RTwiki
(Difference between revisions)
Jump to: navigation, search
 
(Remove Content)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Priority inversion can occur as follows:
+
<div style="margin:0; margin-top:10px; margin-right:10px; border:1px solid #dfdfdf; padding:0 1em 1em 1em; background-color:#f9e9e9; align:right;">
* A low-priority process acquires a lock.
+
<b>This wiki is being migrated to the Linux Foundation Real-Time Linux Project hosted wiki. The new page is available at: https://wiki.linuxfoundation.org/realtime/documentation/technical_basics/pi. This page is now deprecated.</b>
* This low-priority process is preempted by a medium-priority process.
+
</div>
* A high-priority process attempts to acquire the lock held by the preempted low-priority process.
+
The high-priority process cannot run until the low-priority process releases the lock, which will not happen as long as the medium priority process continues to run. The medium-priority process is thus effectively preventing the high-priority process from running, hence the name "priority inversion".
+
Priority inversion can be prevented via [[priority inheritance]], by disabling preemption for any process holding a lock, by associating a priority with each lock (boosting any holding process to the lock's priority, which must be at least as high as any process acquiring it) or by prohibiting processes of different priorities from acquiring the same lock.
+
 
+
CONFIG_PREEMPT_RT uses [[priority inheritance]].
+

Latest revision as of 14:47, 17 July 2017

This wiki is being migrated to the Linux Foundation Real-Time Linux Project hosted wiki. The new page is available at: https://wiki.linuxfoundation.org/realtime/documentation/technical_basics/pi. This page is now deprecated.

Personal tools