[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |