Re: [tip PATCH v7 0/9] RFC: futex: requeue pi implementation

From: Thomas Gleixner
Date: Sun Apr 05 2009 - 06:02:55 EST


Darren,

On Fri, 3 Apr 2009, Darren Hart wrote:
> The following series is v7 of the requeue_pi patches against
> linux-2.6-tip/core/futexes. The current futex implementation doesn't allow for
> requeueing of PI futexes, which leads to a thundering herd during
> pthread_cond_broadcasa()t (as opposed to a civilized priority ordered wakeup
> sequence). The core of the problem is that the underlying rt_mutex cannot be
> left with waiters and no owner (which would break the PI logic). This patch
> series updates the futex code to allow for requeueing from non-PI to PI futexes
> in support of PI aware pthread_cond_* calls along with some needful rt_mutex
> helper routines. The credit for the conceptual design goes to Thomas Gleixner,
> while the bugs and other idiocies present in this implementation should be
> attributed to me.

I went through the patches with a fine comb again and there is nothing
left which triggered my futex wreckage sensors. Thanks for your
patience to go through the lather, rinse, repeat drill.

I think we are at a point where that code simply needs exposure to the
hostile environment of RT-Java VMs. I'm going to pull that into
tip/next and into -rt. Even if we have no requeue_pi user right now we
definitly want to test the heck out of the changes which also affect
the existing futex ops.

Uli, Jakub can you please go over the design and the user space
interface ?

Darren, could you please polish the initial design notes - especially
point out the subtle differences between requeue and requeue_pi - and
send them into the thread? That might help Uli and Jakub and we
definitly want to have that info preserved in Documentation/ as well.

Thanks,

tglx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/