[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v1 1/4] xen: add real time scheduler rt
On Sun, Aug 24, 2014 at 11:58 PM, Meng Xu <mengxu@xxxxxxxxxxxxx> wrote: > This scheduler follows the pre-emptive Global EDF theory in real-time field. > Each VCPU can have a dedicated period and budget. > While scheduled, a VCPU burns its budget. > A VCPU has its budget replenished at the beginning of each of its periods; > The VCPU discards its unused budget at the end of each of its periods. > If a VCPU runs out of budget in a period, it has to wait until next period. > The mechanism of how to burn a VCPU's budget depends on the server mechanism > implemented for each VCPU. > > Server mechanism: a VCPU is implemented as a deferable server. > When a VCPU is scheduled to execute on a PCPU, its budget is continuously > burned. > > Priority scheme: Preemptive Global Earliest Deadline First (gEDF). > At any scheduling point, the VCPU with earliest deadline has highest > priority. > > Queue scheme: A global Runqueue for each CPU pool. > The Runqueue holds all runnable VCPUs. > VCPUs in the Runqueue are divided into two parts: with and without budget. > At each part, VCPUs are sorted based on gEDF priority scheme. > > Scheduling quantum: 1 ms; > > Note: cpumask and cpupool is supported. > > This is still in the development phase. You should probably take this out now that you've removed the RFC. :-) I'm just doing a first pass, so just a few quick comments to begin with. > diff --git a/xen/common/schedule.c b/xen/common/schedule.c > index 55503e0..7d2c6d1 100644 > --- a/xen/common/schedule.c > +++ b/xen/common/schedule.c > @@ -69,6 +69,7 @@ static const struct scheduler *schedulers[] = { > &sched_credit_def, > &sched_credit2_def, > &sched_arinc653_def, > + &sched_rt_def, > }; > > static struct scheduler __read_mostly ops; > @@ -1090,7 +1091,8 @@ long sched_adjust(struct domain *d, struct > xen_domctl_scheduler_op *op) > > if ( (op->sched_id != DOM2OP(d)->sched_id) || > ((op->cmd != XEN_DOMCTL_SCHEDOP_putinfo) && > - (op->cmd != XEN_DOMCTL_SCHEDOP_getinfo)) ) > + (op->cmd != XEN_DOMCTL_SCHEDOP_getinfo) && > + (op->cmd != XEN_DOMCTL_SCHEDOP_getnumvcpus)) ) Why are you introducing this as a schedop? Isn't this information already exposed in getdomaininfo? _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |