All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

Commit 66ca440f authored by Jan Beulich's avatar Jan Beulich

_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: default avatarJan Beulich <jbeulich@novell.com>
parent 2440c860
......@@ -464,6 +464,7 @@ _csched_cpu_pick(const struct scheduler *ops, struct vcpu *vc, bool_t commit)
cpumask_t cpus;
cpumask_t idlers;
cpumask_t *online;
struct csched_pcpu *spc = NULL;
int cpu;
/*
......@@ -531,9 +532,8 @@ _csched_cpu_pick(const struct scheduler *ops, struct vcpu *vc, bool_t commit)
&& (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 @@ _csched_cpu_pick(const struct scheduler *ops, struct vcpu *vc, bool_t commit)
}
}
if ( commit && spc )
spc->idle_bias = cpu;
return cpu;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment