From: Ingo Molnar <mingo@elte.hu>
To: Srivatsa Vaddagiri <vatsa@in.ibm.com>
Cc: efault@gmx.de, tingy@cs.umass.edu, wli@holomorphy.com,
linux-kernel@vger.kernel.org
Subject: Re: fair clock use in CFS
Date: Mon, 14 May 2007 15:15:52 +0200 [thread overview]
Message-ID: <20070514131552.GA13928@elte.hu> (raw)
In-Reply-To: <20070514130412.GA6103@in.ibm.com>
* Srivatsa Vaddagiri <vatsa@in.ibm.com> wrote:
> On Mon, May 14, 2007 at 01:10:51PM +0200, Ingo Molnar wrote:
> > but let me give you some more CFS design background:
>
> Thanks for this excellent explanation. Things are much clearer now to
> me. I just want to clarify one thing below:
>
> > > 2. Preemption granularity - sysctl_sched_granularity
>
> [snip]
>
> > This granularity value does not depend on the number of tasks running.
>
> Hmm ..so does sysctl_sched_granularity represents granularity in
> real/wall-clock time scale then? AFAICS that doesnt seem to be the
> case.
there's only this small detail i mentioned:
> > ( small detail: the granularity value is currently dependent on the
> > nice level, making it easier for higher-prio tasks to preempt
> > lower-prio tasks. )
> __check_preempt_curr_fair() compares for the distance between the two
> task's (current and next-to-be-run task) fair_key values for deciding
> preemption point.
>
> Let's say that to begin with, at real time t0, both current task Tc
> and next task Tn's fair_key values are same, at value K. Tc will keep
> running until its fair_key value reaches atleast K + 2000000. The
> *real/wall-clock* time taken for Tc's fair_key value to reach K +
> 2000000 - is surely dependent on N, the number of tasks on the queue
> (more the load, more slowly the fair clock advances)?
well, it's somewhere in the [ granularity .. granularity*2 ] wall-clock
scale. Basically the slowest way it can reach it is 'half speed' (two
tasks running), the slowest way is 'near full speed' (lots of tasks
running).
> This is what I meant by my earlier remark: "If there a million cpu
> hungry tasks, then the (real/wall-clock) time taken to switch between
> two tasks is more compared to the case where just two cpu hungry tasks
> are running".
the current task is recalculated at scheduler tick time and put into the
tree at its new position. At a million tasks the fair-clock will advance
little (or not at all - which at these load levels is our smallest
problem anyway) so during a scheduling tick in kernel/sched_fair.c
update_curr() we will have a 'delta_mine' and 'delta_fair' of near zero
and a 'delta_exec' of ~1 million, so curr->wait_runtime will be
decreased at 'full speed': delta_exec-delta_mine, by almost a full tick.
So preemption will occur every sched_granularity (rounded up to the next
tick) points in time, in wall-clock time.
with 2 tasks running delta_exec-delta_mine is 0.5 million, so preemption
will occur in 2*sched_granularity (rounded up to the next timer tick)
wall-clock time.
Ingo
next prev parent reply other threads:[~2007-05-14 13:16 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-14 8:33 fair clock use in CFS Srivatsa Vaddagiri
2007-05-14 10:29 ` William Lee Irwin III
2007-05-14 10:31 ` Ingo Molnar
2007-05-14 11:05 ` William Lee Irwin III
2007-05-14 11:22 ` Srivatsa Vaddagiri
2007-05-14 11:20 ` William Lee Irwin III
2007-05-14 12:04 ` Ingo Molnar
2007-05-14 23:57 ` William Lee Irwin III
2007-05-14 20:20 ` Ting Yang
2007-05-14 11:50 ` Ingo Molnar
2007-05-14 14:31 ` Daniel Hazelton
2007-05-14 15:02 ` Srivatsa Vaddagiri
2007-05-14 15:08 ` Ingo Molnar
2007-05-15 2:59 ` David Schwartz
2007-05-14 21:24 ` Ting Yang
2007-05-15 0:57 ` Ting Yang
2007-05-14 23:23 ` William Lee Irwin III
2007-05-14 11:10 ` Ingo Molnar
2007-05-14 13:04 ` Srivatsa Vaddagiri
2007-05-14 13:15 ` Ingo Molnar [this message]
-- strict thread matches above, loose matches on Subject: below --
2007-05-14 15:02 Al Boldi
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=20070514131552.GA13928@elte.hu \
--to=mingo@elte.hu \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=tingy@cs.umass.edu \
--cc=vatsa@in.ibm.com \
--cc=wli@holomorphy.com \
/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.