Thomas Gleixner
f1a11e0576
futex: remove the wait queue
...
The waitqueue which is used in struct futex_q is a leftover from the
futexfd implementation. There is no need to use a waitqueue at all, as
the waiting task is the only user of it. The waitqueue just adds
additional locking and a loop in the wake up path which both can be
avoided.
We have already a task reference in struct futex_q which is used for
PI futexes. Use it for normal futexes as well and just wake up the
task directly.
The logic of signalling the futex wakeup via setting q->lock_ptr to
NULL is kept with the difference that we set it NULL before doing the
wakeup. This opens an exit race window vs. a non futex wake up of the
to be woken up task, which we prevent with get_task_struct /
put_task_struct on the waiter.
[ Impact: simplification ]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2009-05-15 15:24:18 +02:00
..
2009-03-30 21:46:54 +02:00
2009-04-03 15:24:35 -07:00
2009-03-26 16:05:42 -07:00
2009-04-03 15:24:35 -07:00
2009-01-14 14:15:19 +01:00
2009-03-28 13:05:30 -07:00
2009-01-04 15:14:42 -05:00
2008-12-09 02:27:41 -05:00
2009-01-04 15:14:41 -05:00
2009-01-04 15:14:42 -05:00
2009-03-31 23:00:27 -04:00
2009-01-14 14:15:19 +01:00
2009-04-02 19:04:54 -07:00
2008-11-12 17:17:16 -08:00
2009-04-02 19:04:55 -07:00
2009-01-06 15:59:13 -08:00
2008-10-20 08:52:34 -07:00
2009-03-30 22:05:12 +10:30
2009-04-02 19:04:57 -07:00
2008-11-14 10:39:23 +11:00
2009-01-09 13:59:25 -08:00
2008-12-18 13:54:01 +01:00
2009-01-21 18:51:53 +09:00
2008-10-16 11:21:30 -07:00
2009-03-31 23:00:27 -04:00
2009-04-02 21:09:10 -07:00
2009-03-19 13:38:35 +01:00
2009-04-02 21:09:10 -07:00
2008-10-30 11:38:45 -07:00
2008-11-14 10:39:19 +11:00
2009-05-15 15:24:18 +02:00
2009-01-30 22:35:34 +01:00
2009-02-05 13:04:33 +01:00
2009-01-14 21:38:20 +01:00
2008-10-20 08:52:34 -07:00
2008-07-28 14:37:38 +02:00
2008-12-25 09:31:28 +01:00
2009-04-02 19:05:04 -07:00
2008-10-06 13:50:59 -05:00
2009-03-30 22:05:11 +10:30
2009-01-16 14:32:17 -05:00
2009-01-06 10:44:31 -08:00
2009-03-30 22:05:11 +10:30
2009-02-11 10:18:04 +01:00
2009-02-14 23:28:22 +01:00
2009-02-14 23:28:28 +01:00
2009-02-14 23:27:59 +01:00
2009-03-31 13:53:43 +02:00
2009-04-03 16:42:35 +01:00
2008-11-16 09:52:03 +01:00
2009-03-27 17:28:43 +01:00
2009-01-14 18:09:02 +01:00
2009-01-14 18:09:02 +01:00
2009-01-14 19:03:54 +01:00
2009-01-14 18:09:02 +01:00
2008-11-26 08:22:50 +01:00
2009-04-02 19:04:53 -07:00
2008-11-24 18:57:41 -05:00
2009-03-13 11:25:53 +01:00
2008-10-23 12:09:00 -07:00
2009-04-02 19:04:58 -07:00
2009-04-02 19:05:02 -07:00
2008-09-02 19:21:40 -07:00
2009-03-23 20:43:35 +01:00
2009-01-14 14:15:20 +01:00
2009-04-02 19:05:04 -07:00
2009-02-10 00:50:37 +01:00
2009-04-03 17:35:06 -07:00
2009-02-26 04:08:14 +01:00
2009-03-31 00:09:37 +02:00
2008-12-18 21:56:04 +01:00
2009-02-26 04:08:14 +01:00
2009-03-30 22:05:16 +10:30
2008-12-18 21:56:04 +01:00
2009-02-26 04:08:14 +01:00
2009-04-02 19:05:05 -07:00
2009-01-08 08:31:05 -08:00
2009-01-15 16:39:38 -08:00
2009-04-06 11:14:02 +02:00
2008-07-21 21:55:02 -07:00
2009-04-06 11:14:02 +02:00
2009-02-26 21:56:07 +01:00
2009-01-06 11:07:15 +01:00
2009-03-30 22:05:17 +10:30
2009-03-24 23:16:51 +01:00
2009-02-15 21:15:16 +01:00
2009-03-30 17:17:35 -07:00
2008-10-22 10:01:52 +02:00
2009-03-27 17:28:43 +01:00
2009-03-24 23:16:51 +01:00
2009-04-03 17:33:30 -07:00
2009-03-02 15:41:30 -08:00
2008-08-05 14:33:47 -07:00
2009-04-02 19:04:58 -07:00
2009-04-03 16:42:35 +01:00
2009-03-13 10:47:34 +01:00
2009-04-03 17:33:30 -07:00
2009-01-14 11:48:07 +01:00
2009-04-02 19:05:11 -07:00
2008-12-25 11:44:43 +01:00
2009-03-30 22:05:17 +10:30
2009-01-14 14:15:16 +01:00
2009-04-02 21:09:10 -07:00
2009-02-01 01:04:33 -08:00
2009-04-03 16:42:35 +01:00
2009-01-01 10:12:28 +10:30
2009-01-06 15:59:20 -08:00
2009-01-14 14:15:18 +01:00
2009-03-30 17:17:35 -07:00
2008-11-16 09:52:03 +01:00
2009-03-09 08:13:35 -07:00
2009-01-14 14:15:26 +01:00
2009-01-12 16:04:37 +01:00
2009-02-27 16:26:21 -08:00
2009-03-24 10:52:46 +11:00
2009-04-02 19:05:01 -07:00
2008-08-23 12:14:12 -07:00
2009-02-05 12:56:48 -08:00
2009-04-02 19:05:00 -07:00