61 lines
1.6 KiB
Diff
61 lines
1.6 KiB
Diff
|
# HG changeset patch
|
||
|
# User George Dunlap <george.dunlap@eu.citrix.com>
|
||
|
# Date 1311255331 -3600
|
||
|
# Node ID 3795d79c740b2aa50aacb7bf7e3503862a7b436c
|
||
|
# Parent 48f72b389b04cfa8d44924577a69ed59e48fbe77
|
||
|
xen: Fix sedf scheduler
|
||
|
|
||
|
Update the sedf scheduler to be compatible with the most recent
|
||
|
generic scheduler interface changes.
|
||
|
|
||
|
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
|
||
|
|
||
|
--- a/xen/common/sched_sedf.c
|
||
|
+++ b/xen/common/sched_sedf.c
|
||
|
@@ -331,6 +331,19 @@ static inline void __add_to_runqueue_sor
|
||
|
}
|
||
|
|
||
|
|
||
|
+static void sedf_insert_vcpu(const struct scheduler *ops, struct vcpu *v)
|
||
|
+{
|
||
|
+ if ( !is_idle_vcpu(v) )
|
||
|
+ {
|
||
|
+ extraq_check(v);
|
||
|
+ }
|
||
|
+ else
|
||
|
+ {
|
||
|
+ EDOM_INFO(v)->deadl_abs = 0;
|
||
|
+ EDOM_INFO(v)->status &= ~SEDF_ASLEEP;
|
||
|
+ }
|
||
|
+}
|
||
|
+
|
||
|
static void *sedf_alloc_vdata(const struct scheduler *ops, struct vcpu *v, void *dd)
|
||
|
{
|
||
|
struct sedf_vcpu_info *inf;
|
||
|
@@ -365,16 +378,6 @@ static void *sedf_alloc_vdata(const stru
|
||
|
INIT_LIST_HEAD(&(inf->list));
|
||
|
INIT_LIST_HEAD(&(inf->extralist[EXTRA_PEN_Q]));
|
||
|
INIT_LIST_HEAD(&(inf->extralist[EXTRA_UTIL_Q]));
|
||
|
-
|
||
|
- if ( !is_idle_vcpu(v) )
|
||
|
- {
|
||
|
- extraq_check(v);
|
||
|
- }
|
||
|
- else
|
||
|
- {
|
||
|
- inf->deadl_abs = 0;
|
||
|
- inf->status &= ~SEDF_ASLEEP;
|
||
|
- }
|
||
|
|
||
|
return inf;
|
||
|
}
|
||
|
@@ -1498,6 +1501,8 @@ const struct scheduler sched_sedf_def =
|
||
|
.init_domain = sedf_init_domain,
|
||
|
.destroy_domain = sedf_destroy_domain,
|
||
|
|
||
|
+ .insert_vcpu = sedf_insert_vcpu,
|
||
|
+
|
||
|
.alloc_vdata = sedf_alloc_vdata,
|
||
|
.free_vdata = sedf_free_vdata,
|
||
|
.alloc_pdata = sedf_alloc_pdata,
|