From: Byungchul Park <byungchul.park@lge.com>
To: Juri Lelli <juri.lelli@arm.com>
Cc: <peterz@infradead.org>, <mingo@kernel.org>,
<linux-kernel@vger.kernel.org>, <juri.lelli@gmail.com>,
<rostedt@goodmis.org>, <kernel-team@lge.com>
Subject: Re: [PATCH 0/8] sched/deadline: Return the best satisfying affinity and dl in cpudl_find
Date: Tue, 28 Mar 2017 09:42:28 +0900 [thread overview]
Message-ID: <20170328004228.GE21430@X58A-UD3R> (raw)
In-Reply-To: <20170327140507.GN10289@e106622-lin>
On Mon, Mar 27, 2017 at 03:05:07PM +0100, Juri Lelli wrote:
> Hi,
>
> On 23/03/17 19:32, Byungchul Park wrote:
> > cpudl_find() is used to find a cpu having the latest dl. The function
> > should return the latest cpu among ones satisfying task's affinity and
> > dl constraint, but current code gives up immediately and just return
> > fail when it fails at the test *only with* the maximum cpu.
> >
> > For example:
> >
> > cpu 0 is running a task (dl: 10).
> > cpu 1 is running a task (dl: 9).
> > cpu 2 is running a task (dl: 8).
> > cpu 3 is running a task (dl: 2).
> >
> > where cpu 3 want to push a task (affinity is 1 2 3 and dl is 1).
>
> Hummm, but this should only happen if you disable admission control,
> right? Otherwise task's affinity can't be smaller that 0-3.
Hi Juri,
Can I ask you what is addmission control? Do you mean affinity setting?
And do you mean s/disable/enable? Or am I misunderstanding?
> >
> > In this case, the task should be migrated from cpu 3 to cpu 1, and
> > preempt cpu 1's task. However, current code just returns fail because
> > it fails at the affinity test with the maximum cpu, that is, cpu 0.
> >
> > This patch set tries to find the best among ones satisfying task's
> > affinity and dl constraint until success or no more to see.
> >
>
> Anyway, do you have numbers showing how common is you fail scenario?
Actually, it very depends on how to set test environment. I can provide
you ones which generate many fails. IMHO, it's not a matter of frequency
but a matter of whether it works corrently. As you know, rt policy already
works corrently regarding this problem.
In other words, if there are dl tasks in a system like:
task a (dl: 1) -+ -+
task b (dl: 2) -| -|
task c (dl: 3) -| -|
task d (dl: 4) -| -+- should be run on 4 cpus machine
task e (dl: 5) -|
task f (dl: 6) -|
task g (dl: 7) -|
task h (dl: 8) -+- should be run on 8 cpus machine
task i (dl: 9)
task j (dl: 10)
IMHO, deadline scheduler should ensure most urgent tasks as many as the
number of cpus in the system to be run, as long as their affinities are
satisfied. What do you think about this?
Thanks,
Byungchul
> It would be interesting to understand how much the slow path is actually
> used, IMHO.
>
> Thanks,
>
> - Juri
next prev parent reply other threads:[~2017-03-28 0:43 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-23 10:32 [PATCH 0/8] sched/deadline: Return the best satisfying affinity and dl in cpudl_find Byungchul Park
2017-03-23 10:32 ` [PATCH 1/8] sched/deadline: Make find_later_rq() choose a closer cpu in topology Byungchul Park
2017-03-23 10:32 ` [PATCH 2/8] sched/deadline: Re-define parameters of cpudl heapify functions Byungchul Park
2017-03-23 10:32 ` [PATCH 3/8] sched/deadline: Add cpudl_maximum_dl() for clean-up Byungchul Park
2017-03-23 10:32 ` [PATCH 4/8] sched/deadline: Factor out the selecting of suitable max cpu Byungchul Park
2017-03-23 10:32 ` [PATCH 5/8] sched/deadline: Protect read of cpudl heap with a lock Byungchul Park
2017-03-23 10:32 ` [PATCH 6/8] sched/deadline: Don't return meaningless cpu in cpudl_maximum_cpu() Byungchul Park
2017-03-23 10:32 ` [PATCH 7/8] sched/deadline: Factor out the modifying of cpudl's heap tree Byungchul Park
2017-03-23 10:32 ` [PATCH 8/8] sched/deadline: Return the best satisfying affinity and dl in cpudl_find Byungchul Park
2017-03-23 22:36 ` Byungchul Park
2017-03-23 22:35 ` [PATCH 0/8] " Byungchul Park
2017-03-27 14:05 ` Juri Lelli
2017-03-28 0:42 ` Byungchul Park [this message]
2017-03-28 7:11 ` Juri Lelli
2017-03-28 7:29 ` Byungchul Park
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=20170328004228.GE21430@X58A-UD3R \
--to=byungchul.park@lge.com \
--cc=juri.lelli@arm.com \
--cc=juri.lelli@gmail.com \
--cc=kernel-team@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox