Re: [PATCH] sched: select 'idle' cfs_rq per task-group to prevent tg-internal imbalance

From: Michael wang
Date: Sun Jul 13 2014 - 21:31:11 EST


On 07/12/2014 12:11 AM, Rik van Riel wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
[snip]
>>
>> That's full wake balance.. if that was cheap,
>> select_idle_sibling() would not exist.
>
> Full wake balance iterates over all the groups in the system,
> select_idle_sibling only over one LLC domain.

Furthermore, balance will calculate the load and do comparison, which
cost many cycles, while select_idle_sibling() just check idle status.

>
> If no CPU in the LLC domain is idle, select_idle_sibling will
> iterate over all of them.

Just the first cpu of groups, for example the cpu0:

sd1:
tg0 tg1
cpu0 cpu1 cpu2 cpu3
sd0:
tg0 tg1
cpu0 cpu1

The thing we'll check is:

sd1:
idle_cpu(0) //busy
idle_cpu(2) //busy
sd0:
idle_cpu(0) //busy

That's really cheap compared with balance path...

During this iteration, which the
> code already does, it should be possible to identify the least
> loaded of the CPUs and pick that one.

That will make select_idle_sibling() more close to balance path(just the
start domain lower), IMHO this seems like not such a good idea... what
we gain doesn't worth the overhead.

But if we have testing show this modify could benefit most of the
workloads (I don't think so but who knows...), then we'll have the
reason to add some load comparison logical inside that quick path ;-)

Regards,
Michael Wang

>
> - --
> All rights reversed
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQEcBAEBAgAGBQJTwAzBAAoJEM553pKExN6DlrEH/RKQPdAdMFK/pxZ/2f9TCXFK
> Vq25LWZeJQhNOrH3Q6VzTTfAG06O8+Bjxfb+SR6BOHCtD4kCBqaBdwVVUDXC+MbK
> NdBa3GtCT3ahvguiYLPEHL1vugND2yzHUgnr9EhUgk6zhnLxfvhIIJj7uv+ZRsri
> o8DsLrIG1jqDGVbbu5ssZ37w6cldoFBw0FAHcVAquoM2SP+/MuatW1SCkRP31IVL
> q0dssP1CD0Nkecz+S6WSI59c0Wt0c73oWNg/q41a/kha7RI1J5VF5yNFacq/uL0g
> Xxyb0mOiJarqMtzuq5ItlOiTry+BpqY1jFhN5ZhFjt9mtvpTR1C/tcXpOw77y0Y=
> =BEJk
> -----END PGP SIGNATURE-----
> --
> 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/
>

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