LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Trinabh Gupta <trinabh@linux.vnet.ibm.com>,
	arjan@linux.intel.com, lenb@kernel.org,
	suresh.b.siddha@intel.com, benh@kernel.crashing.org,
	venki@google.com, ak@linux.intel.com,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH V3 2/3] cpuidle: list based cpuidle driver registration and selection
Date: Thu, 10 Feb 2011 12:30:31 +0530	[thread overview]
Message-ID: <20110210070031.GA5448@dirshya.in.ibm.com> (raw)
In-Reply-To: <1297250263.13327.159.camel@laptop>

* Peter Zijlstra <peterz@infradead.org> [2011-02-09 12:17:43]:

> On Tue, 2011-02-08 at 16:22 +0530, Trinabh Gupta wrote:
> > A cpuidle_driver is global in nature as it provides routines
> > for all the CPUS. Each CPU registered with the cpuidle subsystem is
> > represented as a cpuidle_device. A cpuidle_device structure
> > points to the low level idle routines for that CPU provided by
> > a certain driver. In other words, a cpuidle driver creates a
> > cpuidle_device structure for each CPU that it registers with the
> > cpuidle subsystem. Whenever cpuidle idle loop is called, the cpuidle
> > subsystem picks the cpuidle_device structure for that cpu and
> > calls one of the low level idle routines through that structure. 
> 
> Why all this per-cpu nonsense? I thought we all agreed that ACPI tables
> specifying non-uniform C states were considered buggy and we should
> simply use the intersection of all cpus.

Hi Peter,

We discussed this in the previous posts.  On ppc64 we would like to
have single global registration, but for x86 Arjan recommended that we
keep the per-cpu registration or else we may break legacy or buggy
devices.

Ref: http://lkml.org/lkml/2009/10/7/210

One corner case that was against using lowest common C-State is that
we could have cores/packages sporting a new lower C-State if they are
at a thermal limit and want the OS to go to much lower C-State and
sacrifice performance.  Our global design will prevent that cpu from
going to a state lower than the rest of the system.

This is only a remote possibility, but could happen on battery
operated devices, under low battery mode etc.  Basically we would have
to keep our design open to allow individual CPUs to goto 'their'
deepest allowed sleep state even in a asymmetric case.

Having a design to allow global registration as long as C-States are
symmetric (non-x86 or boot param) and use per-cpu for asymmetric
C-States (x86) case will be ideal.

This patch series is only the first step to remove pm_idle() from x86
and incrementally from all other architectures.  Once we get this
working, tested and accepted, we could remove the per-cpu data
structures and have a global states table.

Thanks for the review.

--Vaidy


  reply	other threads:[~2011-02-10  7:01 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-08 10:51 [RFC PATCH V3 0/3] cpuidle: Cleanup pm_idle and include driver/cpuidle.c in-kernel Trinabh Gupta
2011-02-08 10:51 ` [RFC PATCH V3 1/3] cpuidle: Remove pm_idle pointer for x86 Trinabh Gupta
2011-02-08 10:52 ` [RFC PATCH V3 2/3] cpuidle: list based cpuidle driver registration and selection Trinabh Gupta
2011-02-09 11:17   ` Peter Zijlstra
2011-02-10  7:00     ` Vaidyanathan Srinivasan [this message]
2011-02-10  9:53       ` Peter Zijlstra
2011-02-10 17:16         ` Vaidyanathan Srinivasan
2011-02-08 10:52 ` [RFC PATCH V3 3/3] cpuidle: default idle driver for x86 Trinabh Gupta
2011-02-09 11:19   ` Peter Zijlstra
2011-02-09 11:21 ` [RFC PATCH V3 0/3] cpuidle: Cleanup pm_idle and include driver/cpuidle.c in-kernel Peter Zijlstra
2011-02-10 15:10   ` Trinabh Gupta

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110210070031.GA5448@dirshya.in.ibm.com \
    --to=svaidy@linux.vnet.ibm.com \
    --cc=ak@linux.intel.com \
    --cc=arjan@linux.intel.com \
    --cc=benh@kernel.crashing.org \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=suresh.b.siddha@intel.com \
    --cc=trinabh@linux.vnet.ibm.com \
    --cc=venki@google.com \
    --subject='Re: [RFC PATCH V3 2/3] cpuidle: list based cpuidle driver registration and selection' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).