From: Sam Vilain <sam@vilain.net>
To: MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>
Cc: vatsa@in.ibm.com, Nick Piggin <nickpiggin@yahoo.com.au>,
Kirill Korotaev <dev@openvz.org>, Mike Galbraith <efault@gmx.de>,
Ingo Molnar <mingo@elte.hu>,
Peter Williams <pwil3058@bigpond.net.au>,
Andrew Morton <akpm@osdl.org>,
sekharan@us.ibm.com, Balbir Singh <balbir@in.ibm.com>,
linux-kernel@vger.kernel.org, kurosawa@valinux.co.jp,
ckrm-tech@lists.sourceforge.net
Subject: Re: [RFC] CPU controllers?
Date: Mon, 19 Jun 2006 20:19:24 +1200 [thread overview]
Message-ID: <44965E0C.9050508@vilain.net> (raw)
In-Reply-To: <44964C89.6060003@jp.fujitsu.com>
MAEDA Naoaki wrote:
>> ok, so basically the bit in cpu_rc_load() where for_each_cpu_mask() is
>> called, in Maeda Naoaki's patch "CPU controller - Add class load
>> estimation support", is where O(N) creeps in that could be remedied with
>> a token bucket algorithm. You don't want this because if you have 10,000
>> processes on a system in two resource groups, the aggregate performance
>> will suffer due to the large number of cacheline misses during the 5,000
>> size loop that runs every resched.
>>
>
> Thank you for looking the code.
>
> cpu_rc_load() is never called unless sysadm tries to access the load
> information via configfs from userland. In addition, it sums up per-CPU
> group stats, so the size of loop is the number of CPU, not process in
> the group.
>
> However, there is a similer loop in cpu_rc_recalc_tsfactor(), which runs
> every CPU_RC_RECALC_INTERVAL that is defined as HZ. I don't think it
> will cause a big performance penalty.
>
Ok, so that's not as bad as it looked. So, while it is still O(N), the
fact that it is O(N/HZ) makes this not a problem until you get to
possibly impractical levels of runqueue length.
I'm thinking it's probably worth doing anyway, just so that it can be
performance tested to see if this performance guestimate is accurate.
>> To apply the token bucket here, you would first change the per-CPU
>> struct cpu_rc to have the TBF fields; minimally:
>>
>> [...]
>> I think that the characteristics of these two approaches are subtly
>> different. Both scale timeslices, but in a different way - instead of
>> estimating the load and scaling back timeslices up front, busy Resource
>> Groups are relied on to deplete their tokens in a timely manner, and get
>> shorter slices allocated because of that. No doubt from 10,000 feet they
>> both look the same.
>>
>
> Current 0(1) scheduler gives extra bonus for interactive tasks by
> requeuing them to active array for a while. It would break
> the controller's efforts. So, I'm planning to stop the interactive
> task requeuing if the target share doesn't meet.
>
> Are there a similar issue on the vserver scheduler?
>
Not an issue - those extra requeued timeslices are accounted for normally.
Sam.
next prev parent reply other threads:[~2006-06-19 8:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-15 13:46 [RFC] CPU controllers? Srivatsa Vaddagiri
2006-06-15 21:52 ` Sam Vilain
2006-06-15 23:30 ` Peter Williams
2006-06-16 0:42 ` Matt Helsley
2006-06-17 8:48 ` Nick Piggin
2006-06-17 15:55 ` Balbir Singh
2006-06-17 16:48 ` Srivatsa Vaddagiri
2006-06-18 5:06 ` Nick Piggin
2006-06-18 5:53 ` Sam Vilain
2006-06-18 6:11 ` Nick Piggin
2006-06-18 6:40 ` Sam Vilain
2006-06-18 7:17 ` Nick Piggin
2006-06-18 6:42 ` Andrew Morton
2006-06-18 7:28 ` Nick Piggin
2006-06-19 19:03 ` Resource Management Requirements (was "[RFC] CPU controllers?") Chandra Seetharaman
2006-06-20 5:40 ` Srivatsa Vaddagiri
2006-06-18 7:36 ` [RFC] CPU controllers? Mike Galbraith
2006-06-18 7:49 ` Nick Piggin
2006-06-18 7:49 ` Nick Piggin
2006-06-18 9:09 ` Andrew Morton
2006-06-18 9:49 ` Mike Galbraith
2006-06-19 6:28 ` Mike Galbraith
2006-06-19 6:35 ` Andrew Morton
2006-06-19 6:46 ` Mike Galbraith
2006-06-19 18:21 ` Chris Friesen
2006-06-20 6:20 ` Mike Galbraith
2006-06-18 7:18 ` Srivatsa Vaddagiri
2006-06-19 2:07 ` Sam Vilain
2006-06-19 7:04 ` MAEDA Naoaki
2006-06-19 8:19 ` Sam Vilain [this message]
2006-06-19 8:41 ` MAEDA Naoaki
2006-06-19 8:53 ` Sam Vilain
2006-06-19 21:44 ` MAEDA Naoaki
2006-06-19 18:14 ` Chris Friesen
2006-06-19 19:11 ` Chandra Seetharaman
2006-06-19 20:28 ` Chris Friesen
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=44965E0C.9050508@vilain.net \
--to=sam@vilain.net \
--cc=akpm@osdl.org \
--cc=balbir@in.ibm.com \
--cc=ckrm-tech@lists.sourceforge.net \
--cc=dev@openvz.org \
--cc=efault@gmx.de \
--cc=kurosawa@valinux.co.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=maeda.naoaki@jp.fujitsu.com \
--cc=mingo@elte.hu \
--cc=nickpiggin@yahoo.com.au \
--cc=pwil3058@bigpond.net.au \
--cc=sekharan@us.ibm.com \
--cc=vatsa@in.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