[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] _csched_cpu_pick(): don't write idle bias more than once
# HG changeset patch # User Jan Beulich <jbeulich@xxxxxxxxxx> # Date 1300123187 0 # Node ID 77bb4be5c95430ee3bad473f1c791affaa517034 # Parent c40da47621d8cb06445e32aa87eba049b1aa5370 _csched_cpu_pick(): don't write idle bias more than once For the bias to be really meaningful, it should be updated only when the CPU selected will indeed be returned (and hence used for placing the vCPU in question). Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- diff -r c40da47621d8 -r 77bb4be5c954 xen/common/sched_credit.c --- a/xen/common/sched_credit.c Mon Mar 14 17:19:22 2011 +0000 +++ b/xen/common/sched_credit.c Mon Mar 14 17:19:47 2011 +0000 @@ -464,6 +464,7 @@ cpumask_t cpus; cpumask_t idlers; cpumask_t *online; + struct csched_pcpu *spc = NULL; int cpu; /* @@ -531,9 +532,8 @@ && (weight_cpu * migrate_factor < weight_nxt) ) ) { cpus_and(nxt_idlers, cpus, nxt_idlers); - cpu = cycle_cpu(CSCHED_PCPU(nxt)->idle_bias, nxt_idlers); - if ( commit ) - CSCHED_PCPU(nxt)->idle_bias = cpu; + spc = CSCHED_PCPU(nxt); + cpu = cycle_cpu(spc->idle_bias, nxt_idlers); cpus_andnot(cpus, cpus, per_cpu(cpu_sibling_map, cpu)); } else @@ -542,6 +542,9 @@ } } + if ( commit && spc ) + spc->idle_bias = cpu; + return cpu; } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |