]> xenbits.xensource.com Git - xen.git/commitdiff
credit: recalculate per-cpupool credits when updating timeslice
authorJuergen Gross <jgross@suse.com>
Wed, 17 Feb 2016 15:48:37 +0000 (16:48 +0100)
committerJan Beulich <jbeulich@suse.com>
Wed, 17 Feb 2016 15:48:37 +0000 (16:48 +0100)
When modifying the timeslice of the credit scheduler in a cpupool the
cpupool global credit value (n_cpus * credits_per_tslice) isn't
recalculated. This will lead to wrong scheduling decisions later.

Do the recalculation when updating the timeslice.

Signed-off-by: Juergen Gross <jgross@suse.com>
Tested-by: Alan.Robinson <alan.robinson@ts.fujitsu.com>
Reviewed-by: Dario Faggioli <dario.faggioli@citrix.com>
master commit: ffc342fbb060cd753fc3a5f6fb6f550dd29a2637
master date: 2016-02-02 14:03:40 +0100

xen/common/sched_credit.c

index 0e61a0e5f566855c446a829ab116dc51838d3100..54fd830efba0f5d61f49fb14c455fd91604117c9 100644 (file)
@@ -1071,6 +1071,7 @@ __csched_set_tslice(struct csched_private *prv, unsigned timeslice)
         prv->ticks_per_tslice = 1;
     prv->tick_period_us = prv->tslice_ms * 1000 / prv->ticks_per_tslice;
     prv->credits_per_tslice = CSCHED_CREDITS_PER_MSEC * prv->tslice_ms;
+    prv->credit = prv->credits_per_tslice * prv->ncpus;
 }
 
 static int