This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] cpuidle asymmetry (was Re: [RFC PATCH V4 5/5] cpuidle: cpuid

To: Vaidyanathan Srinivasan <svaidy@xxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] cpuidle asymmetry (was Re: [RFC PATCH V4 5/5] cpuidle: cpuidle driver for apm)
From: Len Brown <lenb@xxxxxxxxxx>
Date: Wed, 30 Mar 2011 22:17:43 -0400 (EDT)
Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>, ak@xxxxxxxxxxxxxxx, suresh.b.siddha@xxxxxxxxx, venki@xxxxxxxxxx, peterz@xxxxxxxxxxxxx, benh@xxxxxxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxx, arjan@xxxxxxxxxxxxxxx, Trinabh Gupta <trinabh@xxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 30 Mar 2011 19:18:25 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20110325180156.GC19214@xxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20110322123208.28725.30945.stgit@xxxxxxxxxxxxxxxxxxx> <20110322123336.28725.29810.stgit@xxxxxxxxxxxxxxxxxxx> <20110323121458.ec7cdaf9.sfr@xxxxxxxxxxxxxxxx> <4D89CA7D.8080108@xxxxxxxxxxxxxxxxxx> <alpine.LFD.2.02.1103231623450.12911@x980> <4D8B550D.5000409@xxxxxxxxxxxxxxxxxx> <alpine.LFD.2.02.1103250321480.32565@x980> <20110325180156.GC19214@xxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Alpine 2.02 (LFD 1266 2009-07-14)
> > > Maybe there is some other way to handle asymmetry ??

I mis-spoke on asymmetry.

Moorestown is already an example of an asymmetric system,
since its deepest c-state is available on cpu0, but not on cpu1.
So it needs different tables for each cpu.

I think what would work is a default c-state table for the system,
and the ability of a per-cpu override table.  I think that would
gracefully handle the case of many identical cpus, and also systems
with different tables per cpu.

The same goes for write-access to the tables.
In the typical case, a single table can be shared for the entire system
and nobody will be writing to it.  However, with the governor changes
to call dev->prepare and sift through all the states to find the
legal one with the lowest power_usage... There is software today
out of tree that updates that power_usage entry from prepare().

As I mentioned, I'm not fond of that mechanism - it looks racey
to me.  I'd rather see the capability of a drivers idle handler
to demote to another handler in the driver and for the accounting
to not get messed up when that happens.  I think the way to do that
is to let the driver do the accounting rather than doing it in
the cpuidle caller.

-Len Brown, Intel Open Source Technology Center

Xen-devel mailing list