Re: [RFC] futex: hashbucket as list of futex instead of waiters

From: Peter Zijlstra
Date: Fri Sep 29 2017 - 04:36:48 EST


On Fri, Sep 29, 2017 at 12:39:32AM +0200, Gerd Gerats wrote:
> >
> > So I suppose the purpose of that plist in futex is to enable waking up
> > the highest prio waiter, but with the advent of SCHED_DEADLINE that no
> > longer works.
>
> I do not understand, plist is the original data structure. I assume, it works
> together with SCHED_DEADLINE.

plist does not work well with DEADLINE, all deadline tasks will get
lumped together at prio -1; prio as a single integer doesn't really work
for DEADLINE.

We've converted the RT-mutes over to RB-trees a fair while ago; see
commit:

fb00aca47440 ("rtmutex: Turn the plist into an rb-tree")

> Or is there something on the way not pressent in 4.13.

Thomas held off on converting futex to rb-trees because, as he said
elsewhere in this thread, he's worried about the performance impact on
futexes.