|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Possible fix for the SEDF scheduler assertion problem.
# HG changeset patch
# User jrb44@xxxxxxxxxxxxxxxxx
# Node ID 716a0d177ffa27f3d5c7caf8acfb7b4ff9fd6384
# Parent 85f92475b9437fcd10bf1ae105f53b0abe963050
Possible fix for the SEDF scheduler assertion problem.
Signed-off-by: Stephan Diestelhorst <Stephan.Diestelhorst@{cl.cam.ac.uk,
inf.tu-dresden.de}>
diff -r 85f92475b943 -r 716a0d177ffa xen/common/sched_sedf.c
--- a/xen/common/sched_sedf.c Mon Oct 3 18:14:02 2005
+++ b/xen/common/sched_sedf.c Mon Oct 3 22:28:24 2005
@@ -500,9 +500,15 @@
curinf->vcpu->domain->domain_id,
curinf->vcpu->vcpu_id);
__del_from_queue(curinf->vcpu);
-
+
/*move them to their next period*/
curinf->deadl_abs += curinf->period;
+ /*ensure that the start of the next period is in the future*/
+ if (unlikely(PERIOD_BEGIN(curinf) < now)) {
+ curinf->deadl_abs +=
+ (DIV_UP(now - PERIOD_BEGIN(curinf),
+ curinf->period)) * curinf->period;
+ }
/*and put them back into the queue*/
__add_to_waitqueue_sort(curinf->vcpu);
continue;
@@ -645,7 +651,7 @@
s_time_t end_xt,
struct list_head *extraq[], int cpu) {
struct task_slice ret;
struct sedf_vcpu_info *runinf;
-
+ ASSERT(end_xt > now);
/* Enough time left to use for extratime? */
if (end_xt - now < EXTRA_QUANTUM)
goto return_idle;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] Possible fix for the SEDF scheduler assertion problem.,
Xen patchbot -unstable <=
|
|
|
|
|