From: Alex Shi <alex.shi@intel.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: npiggin@kernel.dk, mingo@redhat.com, peterz@infradead.org,
linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
Mike Galbraith <efault@gmx.de>
Subject: Re: [PATCH 02/10] sched: fix find_idlest_group mess logical
Date: Fri, 07 Dec 2012 09:32:55 +0800 [thread overview]
Message-ID: <50C14747.9060707@intel.com> (raw)
In-Reply-To: <CAFTL4hz=PQZuSsF_6--i5BmiJGVxXngdQjDRD4gx4-SwDk36zw@mail.gmail.com>
On 12/07/2012 08:56 AM, Frederic Weisbecker wrote:
> 2012/12/3 Alex Shi <alex.shi@intel.com>:
>> There is 4 situations in the function:
>> 1, no task allowed group;
>> so min_load = ULONG_MAX, this_load = 0, idlest = NULL
>> 2, only local group task allowed;
>> so min_load = ULONG_MAX, this_load assigned, idlest = NULL
>> 3, only non-local task group allowed;
>> so min_load assigned, this_load = 0, idlest != NULL
>> 4, local group + another group are task allowed.
>> so min_load assigned, this_load assigned, idlest != NULL
>>
>> Current logical will return NULL in first 3 kinds of scenarios.
>> And still return NULL, if idlest group is heavier then the
>> local group in the 4th situation.
>>
>> Actually, I thought groups in situation 2,3 are also eligible to host
>> the task. And in 4th situation, agree to bias toward local group.
>> So, has this patch.
>
> The way I understand the loop that use this in select_task_rq_fair() is:
>
> a) start from the highest domain level we are allowed to run to
> migrate the task in
> b) from that top level domain, find the idlest group. If the idlest
> group contains current CPU, zoom in the child domain and repeat b). If
> the idlest group doesn't contain the current CPU, pick the idlest CPU
> from that group.
> c) In the end if we found no idler target than current CPU, then take it.
>
> So if you also return a group that contains current CPU from
> find_idlest_group(), you don't recursively zoom in the child domain
> anymore. find_idlest_cpu() will fix that for you but it may come with
> some cost because now it iterates through every CPUs, or may be half
> of them.
Not exactly, the old logical won't select cpu from group of situation 2
and 3. That is wrong. and may cause the task keep stay on prev_cpu even
there are still other idler and allowed cpu exist.
situation 2,3 are also eligible for the task. and may has idler and
eligible cpu.
>
> The advantage of a recursive zooming through find_idlest_group() is to
> scale better with the number of CPUs. It's probably like O(log n)
> instead of O(n).
>
> But it's possible I misunderstood something.
>
next prev parent reply other threads:[~2012-12-07 1:35 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-03 13:54 [PATCH 0/4] sched: fork/exec/wake clean up Alex Shi
2012-12-03 13:54 ` [PATCH 01/10] sched: select_task_rq_fair " Alex Shi
2012-12-06 17:50 ` Frederic Weisbecker
2012-12-07 0:31 ` Alex Shi
2012-12-07 1:02 ` Frederic Weisbecker
2012-12-07 1:22 ` Alex Shi
2012-12-03 13:54 ` [PATCH 02/10] sched: fix find_idlest_group mess logical Alex Shi
2012-12-07 0:56 ` Frederic Weisbecker
2012-12-07 1:32 ` Alex Shi [this message]
2012-12-07 8:33 ` Frederic Weisbecker
2012-12-08 12:12 ` Alex Shi
2012-12-03 13:54 ` [PATCH 03/10] sched: don't need go to smaller sched domain Alex Shi
2012-12-03 13:54 ` [PATCH 04/10] sched: remove domain iterations in fork/exec/wake Alex Shi
2012-12-05 7:09 ` [PATCH 0/4] sched: fork/exec/wake clean up Alex Shi
2012-12-07 0:33 ` Alex Shi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50C14747.9060707@intel.com \
--to=alex.shi@intel.com \
--cc=akpm@linux-foundation.org \
--cc=efault@gmx.de \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=npiggin@kernel.dk \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.