From: William Lee Irwin III <wli@holomorphy.com>
To: Peter Williams <pwil3058@bigpond.net.au>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Michal Kaczmarski <fallow@op.pl>,
Shane Shrybman <shrybman@aei.ca>
Subject: Re: [PATCH] V-3.0 Single Priority Array O(1) CPU Scheduler Evaluation
Date: Tue, 3 Aug 2004 17:50:34 -0700 [thread overview]
Message-ID: <20040804005034.GE2334@holomorphy.com> (raw)
In-Reply-To: <41102FE5.9010507@bigpond.net.au>
William Lee Irwin III wrote:
>> In such schemes, realtime tasks are considered separately from
>> timesharing tasks. Finding a task to run or migrate proceeds with a
>> circular search of the portion of the bitmap used for timesharing tasks
>> after a linear search of that for RT tasks. The list to enqueue a
>> timesharing task in is just an offset from the fencepost determined by
>> priority. Dequeueing is supported with a tag for actual array position.
>> I did this for aperiodic queue rotations, which differs from your SPA.
On Wed, Aug 04, 2004 at 10:37:57AM +1000, Peter Williams wrote:
> While pondering this I have stumbled on a problem that rules out using a
> rotating list for implementing promotion. The problem is that one of
> the requirements is that once a SCHED_NORMAL task is promoted to the
> MAX_RT_PRIO slot it stays there (as far as promotion is concerned).
> With the rotating list this isn't guaranteed and, in fact, any tasks
> that are in the MAX_RT_PRIO slot when promotion occurs will actually be
> demoted to IDLE_PRIO - 1.
Aperiodic rotations defer movement until MAX_RT_PRIO's slot is evacuated.
On Wed, Aug 04, 2004 at 10:37:57AM +1000, Peter Williams wrote:
> Promotion should be a rare event as it is unnecessary if there's less
> than two tasks on the runqueue and when there are more than one task on
> the runqueue the interval between promotions increases linearly with the
> number of runnable tasks. It is also an O(1) operation albeit with a
> constant factor determined by the number of occupied SCHED_NORMAL
> priority slots.
The asymptotics were in terms of SCHED_NORMAL priorities.
On Wed, Aug 04, 2004 at 10:37:57AM +1000, Peter Williams wrote:
> I will modify the code to take better advantage of the fact that
> promotion is not required when the number of runnable tasks is less than
> 2 e.g. by resetting next_prom_due so that the first promotion after the
> number of runnable tasks exceeds 1 will only occur after a full
> promotion interval has expired. At normal loads (and with sensible
> promotion interval settings i.e. greater than the time slice size) this
> should result in promotion never (or hardly ever) occurring and the
> overhead of do_promotions() will only have to be endured when it's
> absolutely necessary.
The primary concern was that ticklessness etc. may require it to occur
during context switches.
-- wli
next prev parent reply other threads:[~2004-08-04 0:56 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-02 6:31 [PATCH] V-3.0 Single Priority Array O(1) CPU Scheduler Evaluation Peter Williams
2004-08-02 13:42 ` William Lee Irwin III
2004-08-03 0:33 ` Peter Williams
2004-08-03 2:03 ` William Lee Irwin III
2004-08-03 3:39 ` Peter Williams
2004-08-03 10:49 ` William Lee Irwin III
2004-08-04 0:37 ` Peter Williams
2004-08-04 0:50 ` William Lee Irwin III [this message]
2004-08-04 1:36 ` Peter Williams
2004-08-04 1:51 ` William Lee Irwin III
2004-08-04 2:40 ` Peter Williams
2004-08-04 7:05 ` Ingo Molnar
2004-08-04 7:44 ` William Lee Irwin III
2004-08-05 1:06 ` Peter Williams
2004-08-05 2:00 ` William Lee Irwin III
2004-08-05 2:12 ` Peter Williams
[not found] <2oEEn-197-9@gated-at.bofh.it>
2004-08-02 13:27 ` Andi Kleen
2004-08-03 0:27 ` Peter Williams
2004-08-03 3:53 ` Andrew Morton
2004-08-03 4:38 ` Peter Williams
2004-08-03 6:51 ` Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2004-08-07 1:44 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=20040804005034.GE2334@holomorphy.com \
--to=wli@holomorphy.com \
--cc=fallow@op.pl \
--cc=linux-kernel@vger.kernel.org \
--cc=pwil3058@bigpond.net.au \
--cc=shrybman@aei.ca \
/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.