xen-devel
[Xen-devel] Re: Power aware credit scheduler
Hi Kevin.
I'm glad you're looking at this. There are a bunch of interesting
areas to look at to improve scheduling on large hierarchical
systems. The idle loop is at the center of most of them.
On Jun 19, 2008, at 6:51 , Tian, Kevin wrote:
a) when there's more idle cpus than required
a.1) csched_cpu_pick
Existing policy is to pick one with more idle neighbours,
to avoid shared resource contention among cores or threads.
However from power P.O.V, package C-state saves much more
power than per-core C-state vehicle. From this angle, it might be
better to keep idle package continuously idle, while picking idle
cores/threads with busy neighbours already, if csched_private.
power is set. The performance/watt ratio is positively incremented
though absolute performance is kicked a bit.
Regardless of any new knobs, a good default behavior might be
to only take a package out of C-state when another non-idle
package has had more than one VCPU active on it over some
reasonable amount of time.
By default, putting multiple VCPUs on the same physical package
when other packages are idle is obviously not always going to
be optimal. Maybe it's not a bad default for VCPUs that are
related (same VM or qemu)? I think Ian P hinted at this. But it
frightens me that you would always do this by default for any set
of VCPUs. Power saving is good but so is memory bandwidth
a.2) csched_vcpu_wake
Similar as above, instead of blindly kick all idle cpus in
a rush, some selective knock can be pushed with power factor
concerned.
Yeah, you will need to rewrite the idle kick code. This can be
tricky because a CPU's idle state might change by the time it
processes a "scheduling IPI" and you need to be careful that
a runnable VCPU doesn't sit on a runqueue when there is at
least one idle CPU in the system.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|