No argument there, thus my proposal for an alternate configuration below.
How so? Several real world applications use one thread per CPU to
dispatch work to, wait for events, etc.
Absolutely, I don't disagree that all the variables should vary in order
to get a complete picture. I'm starting with 8 - it takes several hours
to collect the data.
You really can't do this precisely. You can read the futex value at
various points along the wakeup path, but at some point you have to
commit to waking a task, and you still have a race between the time you
wake_up_task() and when it is scheduled and attempts the cmpxchg itself.
--
Darren Hart
IBM Linux Technology Center
Real-Time Linux Team
--