Messages in this thread | | | Date | Wed, 25 Jun 2008 21:06:33 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: [PATCH 6/6] futex: fix miss ordered wakeups |
| |
On Wed, 25 Jun 2008, Daniel Walker wrote: > On Wed, 2008-06-25 at 18:17 +0200, Peter Zijlstra wrote: > > Also, the main point was about mixing user and kernel space state, you > > still do so by including the futex waiter in the same union. That's a > > fundamental fugly - no matter if you can make it work. > > I don't think it's ugly at all, but I'm open to suggestion for alternate > methods of implementing it .. I don't need to unify the blocked_on > structures, but it does allow for some nice things like reducing the > size of the task struct, and potentially later doing PI across different > API's.
Just get it. Mixing concurrency controls and futex waiters is fundamentally wrong. A task can be blocked on exactly one concurrency control, but it can be on a futex waiter _AND_ then block on a concurrency control.
Unifying the mutex and the rtmutex blocked_on is semantically correct and is a worthwhile thing to do, but adding the futex waiter to it is simply a semantical brain fart which can not be excused by reducing the size of task struct.
No thanks,
tglx
| |