Re: runnable tasks never making it to a runqueue where they can run?

From: Roland Dreier
Date: Wed Mar 07 2012 - 13:03:27 EST


On Wed, Mar 7, 2012 at 8:31 AM, Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:
>> 6,7,8,10,18,19,22 but never onto 23
>
>>   (Interestingly, those 8 CPUs seem to form a domain)
>
> That would be 'interesting'... I have a similar wsm box and you should
> have a domain setup like:
>
> 0-5,12-17  (node 0)
> 6-11,18-23 (node 1)
>
> Where the first set (0-5 & 6-11) is smt0 and the second set (12-17 &
> 18-23) smt1.
>
> Can you boot with sched_debug and send me both /proc/cpuinfo and dmesg?

Never mind, what I said was partially BS. It is true that
I only see the thread on those runqueues. However you are
right that the domain mask is 0xFC0FC0 (6-11,18-23), but
the thread has an affinity mask of 0xFFF5D7, so the CPUs
in the intersection are 0xFC05C0, ie 9 and 11 aren't in its
affinity mask.

The behavior is still a little strange -- the scheduler is trying
6,7,8,10 and their SMT siblings (I left out 20 by accident in
my list but it is there). This is suggestive:

So could the fact that we don't have CPU 11 in our affinity
mask cause the scheduler not to try the CPU 23 runqueue?
Is it only looking at the first SMT sibling or something?

- R.
--
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/