summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorDarren Hart <dvhltc@us.ibm.com>2009-04-20 22:22:22 -0700
committerThomas Gleixner <tglx@linutronix.de>2009-04-30 11:41:35 +0200
commitba9c22f2c01cf5c88beed5a6b9e07d42e10bd358 (patch)
tree77664171b51bb6b03eac13ee946b6d894b2da01d /Documentation
parenta5a2a0c7fa039c59619bc908b3b1ed24734d442a (diff)
downloadop-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
OpenPOWER on IntegriCloud