[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: Power aware credit scheduler

  • To: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • From: Emmanuel Ackaouy <ackaouy@xxxxxxxxx>
  • Date: Thu, 19 Jun 2008 15:09:16 +0200
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, "Wei, Gang" <gang.wei@xxxxxxxxx>, "Yu, Ke" <ke.yu@xxxxxxxxx>
  • Delivery-date: Thu, 19 Jun 2008 06:09:43 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=cc:message-id:from:to:in-reply-to:content-type :content-transfer-encoding:mime-version:subject:date:references :x-mailer; b=C0QP5Qdyxc2tBfdxUZVO0Ybj85DlqIE24jE9UdUTs7gZTG+nmX3iU8gUHF3da/VxYY 729fr0iPfvfefXg4UdbPPgWi4e6gvtb0zlcpQgg6sDrs1/zWk3st+/SMLTxTqQzNn9JS p4oWeacFumYyWZVhP04ieYCNMTFTN3sUyAqVA=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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

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



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.