From b565548bfa308c5e0e2111435abeb132fdd7d0d4 Mon Sep 17 00:00:00 2001 From: Michael Kerrisk Date: Fri, 16 Jan 2015 21:03:25 +0100 Subject: [PATCH] futex.2: Add brief description of the priority inversion problem Signed-off-by: Michael Kerrisk --- man2/futex.2 | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/man2/futex.2 b/man2/futex.2 index 00e8815e8..80ee47d67 100644 --- a/man2/futex.2 +++ b/man2/futex.2 @@ -631,11 +631,13 @@ arguments are ignored. Linux supports priority-inheritance (PI) futexes in order to handle priority-inversion problems that can be encountered with normal futex locks. +Priority inversion is the problem that occurs when a high-priority +process is blocked waiting to acquire a lock held by a low-priority process, +while processes at an intermediate priority continuously preempt +the low-priority process from the CPU. +Consequently, the low-priority process makes no progress toward +releasing the lock, and the high-priority process remains blocked. -.\" -.\" FIXME Should we have some general description of the -.\" priority-inversion problem here? (I'm not sure whether it's needed.) -.\" .\" FIXME ===== Start of adapted Hart/Guniguntala text ===== .\" The following text is drawn from the Hart/Guniguntala paper, .\" but I have reworded some pieces significantly. Please check it. @@ -944,7 +946,7 @@ argument is ignored. .\" I'm not sure we need to say anything about this though. .\" Comments? .\" -.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + .\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" .\" .SH RETURN VALUE .PP