mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: trimarchimichael@yahoo.it
Cc: Max Krasnyansky <maxk@qualcomm.com>,
	Mark Hounschell <dmarkh@cfl.rr.com>,
	Nick Piggin <nickpiggin@yahoo.com.au>,
	Ingo Oeser <ioe-lkml@rameria.de>, Paul Jackson <pj@sgi.com>,
	linux-kernel@vger.kernel.org, Con Kolivas <kernel@kolivas.org>,
	"Derek L. Fults" <dfults@sgi.com>, devik <devik@cdi.cz>,
	Dimitri Sivanich <sivanich@sgi.com>,
	Dinakar Guniguntala <dino@in.ibm.com>,
	Emmanuel Pacaud <emmanuel.pacaud@univ-poitiers.fr>,
	Frederik Deweerdt <deweerdt@free.fr>, Ingo Molnar <mingo@elte.hu>,
	Matthew Dobson <colpatch@us.ibm.com>,
	rostedt@goodmis.org, Oleg Nesterov <oleg@tv-sign.ru>,
	"Paul E. McKenney" <paulmck@us.ibm.com>,
	Paul Menage <menage@google.com>,
	"Randy.Dunlap" <rddunlap@osdl.org>,
	suresh.b.siddha@intel.com, Thomas Gleixner <tglx@linutronix.de>,
	Fabio Checconi <fabio@gandalf.sssup.it>,
	Dario <faggioli@gandalf.sssup.it>
Subject: Re: Inquiry: Should we remove "isolcpus= kernel boot option? (may have realtime uses)
Date: Thu, 05 Jun 2008 14:07:40 +0200	[thread overview]
Message-ID: <1212667660.23439.42.camel@twins> (raw)
In-Reply-To: <933603.75777.qm@web26206.mail.ukl.yahoo.com>

On Thu, 2008-06-05 at 11:16 +0000, Michael Trimarchi wrote:
> Hi,
> 
> > > 
> > > I'm working on a partitioned EDF scheduler right
> > now, and I have to
> > > face several issues, starting from the interface to
> > use to expose the
> > > EDF scheduler to userspace, and the integration with
> > the existing
> > > sched_rt policy.
> >
> > I would add a sched_class above sched_rt and let sched_rt
> > run in all
> > unclaimed time by sched_edf.
> >
> I add this type of class before sched_rt, so the next of sched_edf
> point to sched_rt class.

Exactly.

> > Have you looked at deadline inheritance to replace PI? I
> > think it can be
> > done reasonably simple by replacing the plist with a RB
> > tree.
> I think it can be done with an rb tree.  The only tricky 
> part would be mixing tasks coming from  the sched_edf and the sched_rt
> class, but it should not be a problem.

Mapping them onto U64_MAX - prio or something like that ought to do.

Handling wraparound of the timeline might get a little involved though -
then again realtime takes 584 yrs to wrap a 64bit ns counter.

> > > By now I'm experimenting with an additional
> > sched_class that implements
> > > a SCHED_EDF policy, extending the POSIX struct
> > sched_param with the
> > > EDF parameters of the task, do you see any better way
> > to do that?
> > > Could that approach be reasonable?
> >
> > Yes, that is the way I'm leaning.
> By now I'm facing some problems.  I still have not clear what
> parameters a task forked from a sched_edf task should get, as it would
> involve some form of admission control, 

I'd start with something like:

u64 sched_param::edf_period  [ns]
u64 sched_param::edf_runtime [ns]

so that deadline = time_of_schedule + edf_period, and his allowance
within that period is edf_runtime.

fork would inherit the parent's settings, and we'd need to do admission
control on all tasks entering SCHED_EDF, either through setscheduler()
or fork(). We could fail with -ENOTIME or somesuch error.

> and how to deal with tasks that run longer than their nominal
> execution time (i.e., should we use some server mechanism to limit the
> amount of cpu they're using, or handle that in some other way?)

Yeah - we already account the amount of runtime, we can send them
SIGXCPU and stop running them. Look at the rt_bandwidth code upstream -
it basically stops rt task groups from running once their quota is
depleted - waking them up once it gets refreshed due to the period
expiring.

For single tasks its easier, just account their time and dequeue them
once it exceeds the quota, and enqueue them on a refresh timer thingy to
start them again once the period rolls over.

The only tricky bit here is PI :-) it would need to keep running despite
being over quota.


  reply	other threads:[~2008-06-05 12:08 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-02  2:30 Paul Jackson
2008-06-02 16:42 ` Dimitri Sivanich
2008-06-02 18:39   ` Max Krasnyansky
2008-06-02 21:41     ` Dimitri Sivanich
2008-06-02 21:59       ` Max Krasnyansky
2008-06-03 14:40         ` Dimitri Sivanich
2008-06-03 17:57           ` Max Krasnyanskiy
2008-06-04 14:00           ` Dimitri Sivanich
2008-06-04 18:07             ` Stop machine threads are getting preemted by the rt period enforcement Max Krasnyansky
2008-06-04 18:18               ` Peter Zijlstra
2008-06-04 18:24                 ` Max Krasnyansky
2008-06-04 18:55                   ` Peter Zijlstra
2008-06-04 20:14                     ` Max Krasnyansky
2008-06-02 22:35 ` Inquiry: Should we remove "isolcpus= kernel boot option? (may have realtime uses) Ingo Oeser
2008-06-02 22:45   ` Peter Zijlstra
2008-06-02 23:04     ` Max Krasnyansky
2008-06-02 23:55       ` Ingo Oeser
2008-06-03  3:32         ` Max Krasnyansky
2008-06-03 23:47           ` Max Krasnyanskiy
2008-06-04  0:41             ` Paul Jackson
2008-06-04  4:32               ` Max Krasnyansky
2008-06-04  4:47                 ` Paul Jackson
2008-06-04 12:18                 ` Andi Kleen
2008-06-04 17:41                   ` Paul Jackson
2008-06-04 18:29                     ` Max Krasnyansky
2008-06-04 18:56                       ` Peter Zijlstra
2008-06-04 19:34                         ` Max Krasnyansky
2008-06-04 18:58                       ` Paul Jackson
2008-06-04 19:31                         ` Max Krasnyansky
2008-06-04 19:37                           ` Paul Jackson
2008-06-04 19:45                             ` Max Krasnyansky
2008-06-04 20:05                       ` Andi Kleen
2008-06-04 20:23                         ` Paul Jackson
2008-06-04 20:03                     ` Andi Kleen
2008-06-04 20:16                       ` Paul Jackson
2008-06-04 20:33                         ` Andi Kleen
2008-06-04 20:38                           ` Paul Jackson
2008-06-04 21:16                             ` Max Krasnyansky
2008-06-04 21:17                               ` Paul Jackson
2008-06-04 21:20                                 ` Max Krasnyansky
2008-06-04 21:26                                   ` Paul Jackson
2008-06-04  1:18             ` Nick Piggin
2008-06-04  3:00               ` Max Krasnyansky
2008-06-04 16:18             ` Ingo Oeser
2008-06-04 17:47               ` Max Krasnyansky
2008-06-03  6:03     ` Nick Piggin
2008-06-04  9:58       ` Mark Hounschell
2008-06-04 17:26         ` Paul Jackson
2008-06-04 21:00           ` Mark Hounschell
2008-06-04 21:03             ` Paul Jackson
2008-06-04 19:26         ` Max Krasnyansky
2008-06-04 20:25           ` Peter Zijlstra
2008-06-04 21:44             ` Michael Trimarchi
2008-06-04 21:52               ` Peter Zijlstra
2008-06-05 11:16                 ` Michael Trimarchi
2008-06-05 12:07                   ` Peter Zijlstra [this message]
2008-06-05 14:57                     ` Michael Trimarchi
2009-05-08  2:48               ` GeunSik Lim
2008-06-05 11:44             ` Mark Hounschell
2008-06-06 22:28               ` Max Krasnyanskiy

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=1212667660.23439.42.camel@twins \
    --to=a.p.zijlstra@chello.nl \
    --cc=colpatch@us.ibm.com \
    --cc=devik@cdi.cz \
    --cc=deweerdt@free.fr \
    --cc=dfults@sgi.com \
    --cc=dino@in.ibm.com \
    --cc=dmarkh@cfl.rr.com \
    --cc=emmanuel.pacaud@univ-poitiers.fr \
    --cc=fabio@gandalf.sssup.it \
    --cc=faggioli@gandalf.sssup.it \
    --cc=ioe-lkml@rameria.de \
    --cc=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maxk@qualcomm.com \
    --cc=menage@google.com \
    --cc=mingo@elte.hu \
    --cc=nickpiggin@yahoo.com.au \
    --cc=oleg@tv-sign.ru \
    --cc=paulmck@us.ibm.com \
    --cc=pj@sgi.com \
    --cc=rddunlap@osdl.org \
    --cc=rostedt@goodmis.org \
    --cc=sivanich@sgi.com \
    --cc=suresh.b.siddha@intel.com \
    --cc=tglx@linutronix.de \
    --cc=trimarchimichael@yahoo.it \
    /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

all inboxes | Powered by JetHome®