public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Williams <pwil3058@bigpond.net.au>
To: William Lee Irwin III <wli@holomorphy.com>
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: Wed, 04 Aug 2004 12:40:15 +1000	[thread overview]
Message-ID: <41104C8F.9080603@bigpond.net.au> (raw)
In-Reply-To: <20040804015115.GF2334@holomorphy.com>

William Lee Irwin III wrote:
> William Lee Irwin III wrote:
> 
>>>Aperiodic rotations defer movement until MAX_RT_PRIO's slot is evacuated.
> 
> 
> On Wed, Aug 04, 2004 at 11:36:59AM +1000, Peter Williams wrote:
> 
>>Unfortunately, to ensure no starvation, promotion has to continue even 
>>when there are tasks in MAX_RT_PRIO's slot.
> 
> 
> One may either demote to evict MAX_RT_PRIO immediately prior to
> rotation or rely on timeslice expiry to evict MAX_RT_PRIO. Forcibly
> evicting MAX_RT_PRIO undesirably accumulates tasks at the fencepost.

It's starting to get almost as complex as the current scheme :-)

> 
> 
> William Lee Irwin III wrote:
> 
>>>The primary concern was that ticklessness etc. may require it to occur
>>>during context switches.
> 
> 
> On Wed, Aug 04, 2004 at 11:36:59AM +1000, Peter Williams wrote:
> 
>>On a tickless system, I'd consider using a timer to control when 
>>do_promotions() gets called.  I imagine something similar will be 
>>necessary to manage time slices?
> 
> 
> This is an alternative to scheduler accounting in context switches.
> Periodicity often loses power conservation benefits.

The timer would be deactivated whenever the number of runnable tasks for 
the runqueue goes below 2.  The whole thing could be managed from the 
enqueue and dequeue functions i.e.

dequeue - if the number running is now less than two cancel the timer 
and otherwise decrease the expiry time to maintain the linear 
relationship of the interval with the number of runnable tasks

enqueue - if the number of runnable tasks is now 2 then start the time 
with a single interval setting and if the number is greater than two 
then increase the timer interval to maintain the linear relationship.

I'm assuming here that add_timer(), del_timer() and (especially) 
mod_timer() are relatively cheap.  If mod_timer() is too expensive some 
alternative method could be devised to maintain the linear relationship.

Peter
-- 
Peter Williams                                   pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
  -- Ambrose Bierce


  reply	other threads:[~2004-08-04  2:40 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
2004-08-04  1:36               ` Peter Williams
2004-08-04  1:51                 ` William Lee Irwin III
2004-08-04  2:40                   ` Peter Williams [this message]
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=41104C8F.9080603@bigpond.net.au \
    --to=pwil3058@bigpond.net.au \
    --cc=fallow@op.pl \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shrybman@aei.ca \
    --cc=wli@holomorphy.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