xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Dario Faggioli <dario.faggioli@citrix.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: ian.campbell@citrix.com, xisisu@gmail.com,
	stefano.stabellini@eu.citrix.com, george.dunlap@eu.citrix.com,
	ian.jackson@eu.citrix.com, xen-devel@lists.xen.org,
	xumengpanda@gmail.com, Meng Xu <mengxu@cis.upenn.edu>,
	lichong659@gmail.com, dgolomb@seas.upenn.edu
Subject: Re: [PATCH RFC v1 1/4] rt: Add rt scheduler to hypervisor
Date: Fri, 11 Jul 2014 17:21:51 +0200	[thread overview]
Message-ID: <1405092111.29306.476.camel@Solace> (raw)
In-Reply-To: <53BFF6C4.8030200@citrix.com>


[-- Attachment #1.1: Type: text/plain, Size: 3441 bytes --]

On ven, 2014-07-11 at 15:37 +0100, Andrew Cooper wrote:
> On 11/07/14 05:49, Meng Xu wrote:

> > +/*
> > + * Virtual CPU
> > + */
> > +struct rt_vcpu {
> > +    struct list_head runq_elem; /* On the runqueue list */
> > +    struct list_head sdom_elem; /* On the domain VCPU list */
> > +
> > +    /* Up-pointers */
> > +    struct rt_dom *sdom;
> > +    struct vcpu *vcpu;
> > +
> > +    /* VCPU parameters, in milliseconds */
> > +    s_time_t period;
> > +    s_time_t budget;
> > +
> > +    /* VCPU current infomation */
> > +    long cur_budget;             /* current budget in microseconds */
> 
> Can budget be negative ?
> 
It depends on how you implement the core of the algorithm. Current SEDF
uses a cputime counter, which always increase, and checks whether budget
is being overcome with something lien (cputime >= budget).

Meng's implementation here does the opposite, initializes cur_budget
with budget, and subtract actual execution time from there, until it
reaches zero or, in case of overrun, below zero.

So, yes, if we stick with this version of things (which is perfectly
fine), I think cur_budget should be allowed to go negative.

However, I'd use s_time_t for it it, rather than long.

> >  #define XEN_SCHEDULER_CREDIT   5
> >  #define XEN_SCHEDULER_CREDIT2  6
> >  #define XEN_SCHEDULER_ARINC653 7
> > +#define XEN_SCHEDULER_RT       8
> > +
> >  /* Set or get info? */
> >  #define XEN_DOMCTL_SCHEDOP_putinfo 0
> >  #define XEN_DOMCTL_SCHEDOP_getinfo 1
> > @@ -367,6 +383,9 @@ struct xen_domctl_scheduler_op {
> >          struct xen_domctl_sched_credit2 {
> >              uint16_t weight;
> >          } credit2;
> > +        struct xen_domctl_sched_rt{
> > +            XEN_GUEST_HANDLE_64(xen_domctl_sched_rt_params_t) schedule;
> > +        } rt;
> 
> Thinking more generally, is rt an appropriate name here?  It seems a
> little generic, as there are several classes of realtime schedulers
> employing different semantics and parameters.
> 
That's true. The challenge here is finding a name which is
representative enough of the specific characteristics of the scheduler,
without it being known only in real-time research rooms! :-O

I'd stick with sched_rt.c for the filename, as it's an implementation of
EDF, after all, on top of which (read: in the same file) you can
potentially implement a bunch of different scheduling algorithms and
policies.

This particular one is called "Deferrable Server" (DS). Since it's on
top of EDF, which is a dynamic priority algorithm, it is sometimes
called "Dynamic Deferrable Server" (DDS). It's also part of a class of
algorithms known as "Resource Reservation" algorithms, which is how
(well, one of the ways with which) the RT community refers to algos with
a budgetting scheme inside it.

So, ideas? RTDS (as per Real-Time Deferrable-Server)? RRESDS (Resource
Reservation Deferrable Server)? Just DS (Deferrable Server)?

I'm not sure I like much any of these...

What was it that you had in mind when you said "there are several
classes of realtime schedulers employing different semantics and
parameters" ?

Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2014-07-11 15:21 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-11  4:49 Introduce rt real-time scheduler for Xen Meng Xu
2014-07-11  4:49 ` [PATCH RFC v1 1/4] rt: Add rt scheduler to hypervisor Meng Xu
2014-07-11 14:27   ` Dario Faggioli
2014-07-11 14:37   ` Andrew Cooper
2014-07-11 15:21     ` Dario Faggioli [this message]
2014-07-11 15:40       ` Andrew Cooper
2014-07-11 15:48         ` Dario Faggioli
2014-07-16 17:05           ` Konrad Rzeszutek Wilk
2014-07-17 10:12             ` Meng Xu
2014-07-17 15:12               ` Dario Faggioli
2014-07-18  5:46                 ` Meng Xu
2014-07-18 18:40               ` Konrad Rzeszutek Wilk
2014-07-11  4:49 ` [PATCH RFC v1 2/4] xl for rt scheduler Meng Xu
2014-07-11 11:02   ` Wei Liu
2014-07-11 14:59     ` Meng Xu
2014-07-11 15:07       ` Dario Faggioli
2014-07-11 16:25         ` Meng Xu
2014-07-13 12:58         ` Meng Xu
2014-07-14  7:40           ` Dario Faggioli
2014-07-14  9:31           ` Wei Liu
2014-07-17 15:39           ` Ian Campbell
2014-07-11  4:49 ` [PATCH RFC v1 3/4] libxl " Meng Xu
2014-07-11 11:05   ` Wei Liu
2014-07-11 15:08   ` Dario Faggioli
2014-07-12 18:16     ` Meng Xu
2014-07-14 10:38       ` Dario Faggioli
2014-07-17 15:34     ` Ian Campbell
2014-07-17 15:36   ` Ian Campbell
2014-07-18 11:05     ` Meng Xu
2014-07-11  4:49 ` [PATCH RFC v1 4/4] libxc " Meng Xu
2014-07-11 14:49   ` Dario Faggioli
2014-07-11 16:23     ` Meng Xu
2014-07-11 16:35       ` Dario Faggioli
2014-07-11 16:49         ` Andrew Cooper
2014-07-12 19:46         ` Meng Xu
2014-07-17 15:29     ` Ian Campbell
2014-07-17 15:34       ` George Dunlap
2014-07-17 22:16         ` Meng Xu
2014-07-18  9:49           ` Dario Faggioli
2014-07-18  9:51           ` Ian Campbell
2014-07-18 12:11             ` Meng Xu
2014-07-18  9:47         ` Ian Campbell
2014-07-18 10:00           ` Dario Faggioli
2014-07-11 10:50 ` Introduce rt real-time scheduler for Xen Wei Liu
2014-07-11 11:06   ` Dario Faggioli
2014-07-11 16:14     ` Meng Xu
2014-07-11 16:19 ` Dario Faggioli

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=1405092111.29306.476.camel@Solace \
    --to=dario.faggioli@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=dgolomb@seas.upenn.edu \
    --cc=george.dunlap@eu.citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=lichong659@gmail.com \
    --cc=mengxu@cis.upenn.edu \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=xisisu@gmail.com \
    --cc=xumengpanda@gmail.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;
as well as URLs for NNTP newsgroup(s).