From: Srivatsa Vaddagiri <vatsa@in.ibm.com>
To: Ingo Molnar <mingo@elte.hu>, Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Sam Vilain <sam@vilain.net>,
linux-kernel@vger.kernel.org, Kirill Korotaev <dev@openvz.org>,
Mike Galbraith <efault@gmx.de>, Balbir Singh <balbir@in.ibm.com>,
sekharan@us.ibm.com, Andrew Morton <akpm@osdl.org>,
nagar@watson.ibm.com, matthltc@us.ibm.com, dipankar@in.ibm.com
Subject: [PATCH 0/7] CPU controller - V1
Date: Sun, 20 Aug 2006 23:10:15 +0530 [thread overview]
Message-ID: <20060820174015.GA13917@in.ibm.com> (raw)
This patch is an attempt to provide some minimal CPU controller for resource
management purpose. Although we have seen several proposals for one before,
none has gained acceptance yet. For ex: http://lkml.org/lkml/2006/8/4/137
summarizes the feedback received against the last CPU controller posted by
Fujitsu folks.
This is V1 of the patch posted at http://lkml.org/lkml/2006/8/4/6
and has been tested against 2.6.18-rc3.
Change since last version:
- Basic task-group aware SMP load balancing, based on SMP nice
mechanism
Still on my todo list:
- Cleanup so that !CONFIG_CPUMETER has zero impact
- Better timeslice management, so that bursty workloads
can be handled well. I have some ideas (for ex: don't
switch active/expired arrays as soon as active
array becomes empty) which I would like to experiment
with a bit before sending a patch for this
- Better SMP load balancing. I feel that some feedback
about how much bandwidth a task-group is actually
getting (compared to its quota) can be included in
runqueue pressure calculations.
Salient design points of this patch:
- Each task-group gets its own runqueue on every cpu.
- In addition, there is an active and expired array of
task-groups themselves. Task-groups who have expired their
quota are put into expired array.
- Task-groups have priorities. Priority of a task-group is the
same as the priority of the highest-priority runnable task it
has. This I feel will retain interactiveness of the system
as it is today.
- Scheduling the next task involves picking highest priority task-group
from active array first and then picking highest-priority task
within it. Both steps are O(1).
- Token are assigned to task-groups based on their assigned
quota. Once they run out of tokens, the task-group is put
in an expired array. Array switch happens when active array
is empty.
- SMP load-balancing is accomplished on the lines of smpnice.
- Although the algorithm is very simple, it perhaps needs more
refinement to handle different cases. Especially I
feel task-groups which are idle most of the time and
experience bursts once in a while will need to be handled
better than this simple scheme.
Ingo/Nick,
Would request your inputs as before.
--
Regards,
vatsa
next reply other threads:[~2006-08-20 17:40 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-20 17:40 Srivatsa Vaddagiri [this message]
2006-08-20 17:41 ` [PATCH 1/7] CPU controller V1 - split runqueue Srivatsa Vaddagiri
2006-08-25 12:38 ` Kirill Korotaev
2006-08-28 3:33 ` Srivatsa Vaddagiri
2006-08-28 8:15 ` Kirill Korotaev
2006-08-28 11:03 ` Srivatsa Vaddagiri
2006-08-28 12:31 ` Nick Piggin
2006-08-28 12:52 ` Srivatsa Vaddagiri
2006-08-20 17:42 ` [PATCH 2/7] CPU controller V1 - define group operations Srivatsa Vaddagiri
2006-08-20 17:44 ` [PATCH 3/7] CPU controller V1 - deal with movement of tasks Srivatsa Vaddagiri
2006-08-20 17:45 ` [PATCH 4/7] CPU controller V1 - Handle dont care groups Srivatsa Vaddagiri
2006-08-20 17:46 ` [PATCH 5/7] CPU controller V1 - Extend smpnice to be task-group aware Srivatsa Vaddagiri
2006-08-20 17:47 ` [PATCH 6/7] CPU controller V1 - task_cpu(p) needs to be correct always Srivatsa Vaddagiri
2006-08-20 17:48 ` [PATCH 7/7] CPU controller V1 - (temporary) cpuset interface Srivatsa Vaddagiri
2006-08-20 20:48 ` Paul Jackson
2006-08-21 17:49 ` Srivatsa Vaddagiri
2006-08-28 1:50 ` Paul Jackson
2006-08-22 11:10 ` Mike Galbraith
2006-08-22 10:10 ` Srivatsa Vaddagiri
2006-08-22 14:41 ` Mike Galbraith
2006-08-22 15:23 ` Mike Galbraith
2006-08-22 14:01 ` Srivatsa Vaddagiri
2006-08-22 18:01 ` Mike Galbraith
2006-08-22 15:58 ` Srivatsa Vaddagiri
2006-08-22 18:55 ` Paul Jackson
2006-08-22 15:45 ` Mike Galbraith
2006-08-22 13:50 ` Srivatsa Vaddagiri
2006-08-22 18:05 ` Mike Galbraith
2006-08-22 16:02 ` Srivatsa Vaddagiri
2006-08-22 19:09 ` Mike Galbraith
2006-08-23 9:43 ` Mike Galbraith
2006-08-23 15:24 ` Mike Galbraith
2006-08-23 13:25 ` Srivatsa Vaddagiri
2006-08-21 10:42 ` [PATCH 0/7] CPU controller - V1 Mike Galbraith
2006-08-21 12:48 ` Srivatsa Vaddagiri
2006-08-21 17:10 ` Mike Galbraith
2006-08-21 16:45 ` Srivatsa Vaddagiri
2006-08-21 20:33 ` Mike Galbraith
2006-08-21 18:36 ` Srivatsa Vaddagiri
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=20060820174015.GA13917@in.ibm.com \
--to=vatsa@in.ibm.com \
--cc=akpm@osdl.org \
--cc=balbir@in.ibm.com \
--cc=dev@openvz.org \
--cc=dipankar@in.ibm.com \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=matthltc@us.ibm.com \
--cc=mingo@elte.hu \
--cc=nagar@watson.ibm.com \
--cc=nickpiggin@yahoo.com.au \
--cc=sam@vilain.net \
--cc=sekharan@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox