diff options
author | Darren Hart <dvhltc@us.ibm.com> | 2009-04-20 22:22:22 -0700 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-04-30 11:41:35 +0200 |
commit | ba9c22f2c01cf5c88beed5a6b9e07d42e10bd358 (patch) | |
tree | 77664171b51bb6b03eac13ee946b6d894b2da01d /Documentation | |
parent | a5a2a0c7fa039c59619bc908b3b1ed24734d442a (diff) | |
download | op-kernel-dev-ba9c22f2c01cf5c88beed5a6b9e07d42e10bd358.zip op-kernel-dev-ba9c22f2c01cf5c88beed5a6b9e07d42e10bd358.tar.gz |
futex: remove FUTEX_REQUEUE_PI (non CMP)
The new requeue PI futex op codes were modeled after the existing
FUTEX_REQUEUE and FUTEX_CMP_REQUEUE calls. I was unaware at the time
that FUTEX_REQUEUE was only around for compatibility reasons and
shouldn't be used in new code. Ulrich Drepper elaborates on this in his
Futexes are Tricky paper: http://people.redhat.com/drepper/futex.pdf.
The deprecated call doesn't catch changes to the futex corresponding to
the destination futex which can lead to deadlock.
Therefor, I feel it best to remove FUTEX_REQUEUE_PI and leave only
FUTEX_CMP_REQUEUE_PI as there are not yet any existing users of the API.
This patch does change the OP code value of FUTEX_CMP_REQUEUE_PI to 12
from 13. Since my test case is the only known user of this API, I felt
this was the right thing to do, rather than leave a hole in the
enumeration.
I chose to continue using the _CMP_ modifier in the OP code to make it
explicit to the user that the test is being done.
Builds, boots, and ran several hundred iterations requeue_pi.c.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
LKML-Reference: <49ED580E.1050502@us.ibm.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'Documentation')
0 files changed, 0 insertions, 0 deletions