[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 1/4] xen: add real time scheduler rtds
>>> On 14.09.14 at 23:37, <mengxu@xxxxxxxxxxxxx> wrote: > This scheduler follows the Preemptive Global Earliest Deadline First > (EDF) theory in real-time field. > At any scheduling point, the VCPU with earlier deadline has higher > priority. The scheduler always picks the highest priority VCPU to run on a > feasible PCPU. > A PCPU is feasible if the VCPU can run on this PCPU and (the PCPU is > idle or has a lower-priority VCPU running on it.) > > Each VCPU has a dedicated period and budget. > The deadline of a VCPU is at the end of each period; > A VCPU has its budget replenished at the beginning of each period; > While scheduled, a VCPU burns its budget. > The VCPU needs to finish its budget before its deadline in each period; > The VCPU discards its unused budget at the end of each period. > If a VCPU runs out of budget in a period, it has to wait until next period. > > Each VCPU is implemented as a deferable server. > When a VCPU has a task running on it, its budget is continuously burned; > When a VCPU has no task but with budget left, its budget is preserved. > > Queue scheme: > A global runqueue and a global depletedq for each CPU pool. > The runqueue holds all runnable VCPUs with budget and sorted by deadline; > The depletedq holds all VCPUs without budget and unsorted. > > Note: cpumask and cpupool is supported. > > This is an experimental scheduler. > > Signed-off-by: Meng Xu <mengxu@xxxxxxxxxxxxx> > Signed-off-by: Sisu Xi <xisisu@xxxxxxxxx> For everything except the meat of it (xen/common/sched_rt.c) Acked-by: Jan Beulich <jbeulich@xxxxxxxx> with one coding style nit: > --- a/xen/include/public/domctl.h > +++ b/xen/include/public/domctl.h > @@ -347,6 +347,8 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_max_vcpus_t); > #define XEN_SCHEDULER_CREDIT 5 > #define XEN_SCHEDULER_CREDIT2 6 > #define XEN_SCHEDULER_ARINC653 7 > +#define XEN_SCHEDULER_RTDS 8 > + > /* Set or get info? */ > #define XEN_DOMCTL_SCHEDOP_putinfo 0 > #define XEN_DOMCTL_SCHEDOP_getinfo 1 > @@ -368,6 +370,10 @@ struct xen_domctl_scheduler_op { > struct xen_domctl_sched_credit2 { > uint16_t weight; > } credit2; > + struct xen_domctl_sched_rtds{ Missing blank before opening brace. Jan > + uint32_t period; > + uint32_t budget; > + } rtds; > } u; > }; > typedef struct xen_domctl_scheduler_op xen_domctl_scheduler_op_t; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |