From: Peter Williams <pwil3058@bigpond.net.au>
To: balbir@in.ibm.com
Cc: Peter Williams <peterw@aurema.com>, Andrew Morton <akpm@osdl.org>,
dev@openvz.org, vatsa@in.ibm.com,
ckrm-tech@lists.sourceforge.net, linux-kernel@vger.kernel.org,
bsingharora@gmail.com, efault@gmx.de, kernel@kolivas.org,
sam@vilain.net, kingsley@aurema.com, mingo@elte.hu,
rene.herman@keyaccess.nl
Subject: Re: [ckrm-tech] [PATCH 0/4] sched: Add CPU rate caps
Date: Mon, 19 Jun 2006 21:35:53 +1000 [thread overview]
Message-ID: <44968C19.7050501@bigpond.net.au> (raw)
In-Reply-To: <4496608D.6000502@in.ibm.com>
Balbir Singh wrote:
> Peter Williams wrote:
>> Balbir Singh wrote:
>>
>>> Peter Williams wrote:
>>>
>>>> Balbir Singh wrote:
>>>>
>>>>> Peter Williams wrote:
>>>>>
>>>
>>> <snip>
>>>
>>>>> Is it possible that the effective tasks
>>>>> is greater than the limit of the group?
>>>>
>>>>
>>>>
>>>> Yes.
>>>>
>>>>> How do we handle this scenario?
>>>>
>>>>
>>>>
>>>> You've got the problem back to front. If the number of effective
>>>> tasks is less than the group limit then you have the situation that
>>>> needs special handling (not the other way around). I.e. if the
>>>> number of effective tasks is less than the group limit then
>>>> (strictly speaking) there's no need to do any capping at all as the
>>>> demand is less than the limit. However, in the case where the group
>>>> limit is less than one CPU (i.e. less than 1000) the recommended
>>>> thing to do would be set the limit of each task in the group to the
>>>> group limit.
>>>>
>>>> Obviously, group limits can be greater than one CPU (i.e. 1000).
>>>>
>>>> The number of CPUs on the system also needs to be taken into account
>>>> for group capping as if the group cap is greater than the number of
>>>> CPUs there's no way it can be exceeded and tasks in this group would
>>>> not need any processing.
>>>>
>>>
>>> What if we have a group limit of 100 (out of 1000) and 150 effective
>>> tasks in
>>> the group? How do you calculate the cap of each task?
>>
>>
>> Personally I'd round up to 1 :-) but rounding down to zero is also an
>> option. The reason I'd opt for 1 is that a zero cap has a special
>> meaning i.e. background.
>>
>>> I hope my understanding of effective tasks is correct.
>>
>>
>> Yes, but I think that you fail to realize that this problem (a lower
>> limit to what caps can be enforced) exists for any mechanism due to
>> the fact we're stuck with discrete mathematics in computers. This
>> includes floating point representations of numbers which are just
>> crude (discrete maths) approximations of real numbers.
>
> I do appreciate and realize the problem, thats why I asked the question.
>
> There are some ways of solving this problem (that I could think about)
>
> 1. Keep a whole number and fraction pair and increment the fraction until
> it reaches a whole number and then schedule the task when the whole
> number value reaches a minimal threshold. Or provide tasks with some
> minimal whole number ticks in advance and then do not schedule them
> again till their fractions add up to the whole number (credit system).
>
> For example if T1 and T2 have a cap of 0.5%. Then represent the values
> as whole number zero and fraction represented as 1 and divisor as 2.
>
> Every two ticks their whole number would become 1 and fraction 0,
> divisor 2.
> Schedule the tasks for a tick whenever its whole number becomes 1
> and reset then its whole number to 0.
You're over engineering and you're not solving the problem. You're just
moving it down a bit.
>
>
> 2. In a group based cap management system, schedule some tasks (highest
> priority)
> until their cap run out. In the subsequent rounds pick and choose
> tasks that
> did not get a chance to run earlier.
>
> Solving this is indeed a interesting problem.
>
Once again, you're over engineering and probably making the problem worse.
Peter
--
Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
next prev parent reply other threads:[~2006-06-19 11:35 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-18 8:26 [PATCH 0/4] sched: Add CPU rate caps Peter Williams
2006-06-18 8:26 ` [PATCH 1/4] sched: Add CPU rate soft caps Peter Williams
2006-06-18 8:38 ` Con Kolivas
2006-06-18 15:52 ` Peter Williams
2006-06-19 1:21 ` Peter Williams
2006-06-18 8:26 ` [PATCH 2/4] sched: Add CPU rate hard caps Peter Williams
2006-06-18 8:27 ` [PATCH 3/4] sched: Add procfs interface for CPU rate soft caps Peter Williams
2006-06-18 8:27 ` [PATCH 4/4] sched: Add procfs interface for CPU rate hard caps Peter Williams
2006-06-18 9:50 ` [PATCH 0/4] sched: Add CPU rate caps Andrew Morton
2006-06-18 10:25 ` Peter Williams
2006-06-18 11:42 ` Srivatsa Vaddagiri
2006-06-18 12:19 ` Peter Williams
2006-06-19 0:13 ` Balbir Singh
2006-06-19 1:03 ` [ckrm-tech] " Peter Williams
2006-06-19 2:20 ` Balbir Singh
2006-06-19 3:17 ` Peter Williams
2006-06-19 3:31 ` Balbir Singh
2006-06-19 3:50 ` Peter Williams
2006-06-19 8:30 ` Balbir Singh
2006-06-19 11:35 ` Peter Williams [this message]
2006-06-19 11:33 ` Balbir Singh
2006-06-19 23:09 ` Peter Williams
2006-06-20 4:28 ` Peter Williams
2006-06-20 4:40 ` Balbir Singh
2006-06-20 5:56 ` Peter Williams
2006-06-19 5:04 ` Peter Williams
2006-06-19 23:59 ` Peter Williams
2006-06-19 18:55 ` [ckrm-tech] " Chris Friesen
2006-06-19 23:28 ` Peter Williams
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=44968C19.7050501@bigpond.net.au \
--to=pwil3058@bigpond.net.au \
--cc=akpm@osdl.org \
--cc=balbir@in.ibm.com \
--cc=bsingharora@gmail.com \
--cc=ckrm-tech@lists.sourceforge.net \
--cc=dev@openvz.org \
--cc=efault@gmx.de \
--cc=kernel@kolivas.org \
--cc=kingsley@aurema.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterw@aurema.com \
--cc=rene.herman@keyaccess.nl \
--cc=sam@vilain.net \
--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