All of lore.kernel.org
 help / color / mirror / Atom feed
From: MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>
To: Mike Galbraith <efault@gmx.de>
Cc: linux-kernel@vger.kernel.org, ckrm-tech@lists.sourceforge.net,
	Maeda Naoaki <maeda.naoaki@jp.fujitsu.com>
Subject: Re: [ckrm-tech] Re: [RFC][PATCH 5/9] CPU controller - Documents how the controller works
Date: Mon, 24 Apr 2006 15:25:00 +0900	[thread overview]
Message-ID: <444C6F3C.1070505@jp.fujitsu.com> (raw)
In-Reply-To: <1145776430.7990.58.camel@homer>

Mike Galbraith wrote:
> On Fri, 2006-04-21 at 11:27 +0900, maeda.naoaki@jp.fujitsu.com wrote:
>> +3. Timeslice scaling
>> +
>> + If there are hungry classes, we need to adjust timeslices to satisfy
>> + the share.  To scale timeslices, we introduce a scaling factor
>> + used for scaling timeslices.  The scaling factor is associated with
>> + the class (stored in the cpu_rc structure) and adaptively adjusted
>> + according to the class load and the share.
> 
> This all works fine until interactive task requeueing is considered, and
> it must be considered.
> 
> One simple way to address the requeue problem is to introduce a scaled
> class sleep_avg consumption factor.  Remove the scaling exemption for
> TASK_INTERACTIVE(p), and if a class's cpu usage doesn't drop to what is
> expected by group timeslice scaling, make members consume sleep_avg at a
> higher rate such that scaling can take effect.

Interesting approach. However, I'm worrying about hurting interactive
response by this change.

> A better way to achieve the desired group cpu usage IMHO would be to
> adjust nice level of members at slice refresh time.  This way, you get
> the timeslice scaling and priority adjustment all in one.
> 
> (I think I would do both actually, with nice level being preferred such
> that dynamic priority spread within the group isn't flattened, which can
> cause terminal starvation within the group, unless really required.)

If nice is changed, the task priority is also changed. I don't think
changing the task priority for this purpose is a good choice, but
only lengthen the timeslice would work and that is what I'm considering.

Another obvious bad case is an imbalanced number of runnable tasks
in the different groups. Since minimum timeslice is 1 tick,
minimum share is the factor of number of runnable tasks in the group.
If 1% share group contains 99 runnable tasks and the other 99% share
group has just one runnable task, the load of the two groups would be
the same. (It becomes worse in small HZ configuration.)

I've tried different approach to compensate for this badness.
Which is to requeue the starving tasks to the active as if they are
TASK_INTERACTIVE, but it sometimes hurt system response and other
undesirable side effect was observed.

Now, I'm thinking to enlarge the timeslice of starving groups.

Thanks,
MAEDA Naoaki


  reply	other threads:[~2006-04-24  6:26 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-21  2:27 [RFC][PATCH 0/9] CKRM CPU resource controller maeda.naoaki
2006-04-21  2:27 ` [RFC][PATCH 1/9] CPU controller - Adds class load estimation maeda.naoaki
2006-04-21  2:27 ` [RFC][PATCH 2/9] CPU controller - Adds class hungry detection maeda.naoaki
2006-04-21  2:27 ` [RFC][PATCH 3/9] CPU controller - Adds timeslice scaling maeda.naoaki
2006-04-21  8:17   ` Mike Galbraith
2006-04-21  8:56     ` MAEDA Naoaki
2006-04-21 11:50       ` [ckrm-tech] " Naoaki MAEDA
2006-04-21 12:03         ` Mike Galbraith
2006-04-21 11:53       ` Mike Galbraith
2006-04-21  2:27 ` [RFC][PATCH 4/9] CPU controller - Adds interface functions maeda.naoaki
2006-04-21  2:27 ` [RFC][PATCH 5/9] CPU controller - Documents how the controller works maeda.naoaki
2006-04-23  7:13   ` Mike Galbraith
2006-04-24  6:25     ` MAEDA Naoaki [this message]
2006-04-24  9:49       ` [ckrm-tech] " Mike Galbraith
2006-04-21  2:27 ` [RFC][PATCH 6/9] CPU controller - Adds basic functions and registering the controller maeda.naoaki
2006-04-21  2:28 ` [RFC][PATCH 7/9] CPU controller - Adds routines to change share values and show stat maeda.naoaki
2006-04-21  2:28 ` [RFC][PATCH 8/9] CPU controller - Adds cpu hotplug notifier maeda.naoaki
2006-04-21  2:28 ` [RFC][PATCH 9/9] CPU controller - Documents how to use the controller maeda.naoaki

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=444C6F3C.1070505@jp.fujitsu.com \
    --to=maeda.naoaki@jp.fujitsu.com \
    --cc=ckrm-tech@lists.sourceforge.net \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.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.