All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arjan van de Ven <arjan@infradead.org>
Cc: linux-arch@vger.kernel.org, Gautham R Shenoy <ego@in.ibm.com>,
	Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>,
	linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
	arun@linux.vnet.ibm.com, Ingo Molnar <mingo@elte.hu>,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [v7 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.
Date: Wed, 7 Oct 2009 16:56:48 +0530	[thread overview]
Message-ID: <20091007112648.GC7646@dirshya.in.ibm.com> (raw)
In-Reply-To: <1254852279.17055.2.camel@laptop>

* Peter Zijlstra <a.p.zijlstra@chello.nl> [2009-10-06 20:04:39]:

> On Tue, 2009-10-06 at 22:05 +0530, Arun R Bharadwaj wrote:
> 
> > Also, the per-cpu nature of registration/unregistration of cpuidle
> > has been maintained as ACPI needs this.
> 
> Right, so can't we ditch that and have acpi default to the lowest common
> C-state and warn when various cpus report different C-states?

Hi Peter,

As Arjan mentioned previously, the per-cpu registration has to stay
for x86 for now due to legacy ACPI compatibility.  Breaking that may
break lot of existing users and we do not have a clean fallback
method.  

As far as powerpc is concerned, we can work with a single global
registration.  However we would like to have the same interface across
different archs.

With the new re-factoring (v7), Arun has killed most of the list
traversal and linking between various cpu's cpuidle_driver structures.
Now we have a per-cpu stack of registered devices and we lookup the
structs using online cpumasks.  The cpuidle_driver structure has list
of idle routing pointers (struct cpuidle_state) and rest of it is
statistics that needs to be maintained at a per-cpu level anyway.  All
that is duplicated here is the array of idle routines (struct
cpuidle_state) on each cpu.

The objective of the refactoring is to have a single common idle
routine management framework (remove pm_idle) and we have it done
through cpuidle registration framework.  We can incrementally remove
the per-cpu registration later easily by splitting the cpuidle_driver
structure.

--Vaidy

WARNING: multiple messages have this Message-ID (diff)
From: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Arjan van de Ven <arjan@infradead.org>
Cc: arun@linux.vnet.ibm.com, Joel Schopp <jschopp@austin.ibm.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>, Ingo Molnar <mingo@elte.hu>,
	Dipankar Sarma <dipankar@in.ibm.com>,
	Balbir Singh <balbir@in.ibm.com>,
	Gautham R Shenoy <ego@in.ibm.com>,
	Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>,
	linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-arch@vger.kernel.org
Subject: Re: [v7 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.
Date: Wed, 7 Oct 2009 16:56:48 +0530	[thread overview]
Message-ID: <20091007112648.GC7646@dirshya.in.ibm.com> (raw)
Message-ID: <20091007112648.SZhbLl75n3Y6-u6aNsBfqKQD8IxUefPoYrvWsXeSkqg@z> (raw)
In-Reply-To: <1254852279.17055.2.camel@laptop>

* Peter Zijlstra <a.p.zijlstra@chello.nl> [2009-10-06 20:04:39]:

> On Tue, 2009-10-06 at 22:05 +0530, Arun R Bharadwaj wrote:
> 
> > Also, the per-cpu nature of registration/unregistration of cpuidle
> > has been maintained as ACPI needs this.
> 
> Right, so can't we ditch that and have acpi default to the lowest common
> C-state and warn when various cpus report different C-states?

Hi Peter,

As Arjan mentioned previously, the per-cpu registration has to stay
for x86 for now due to legacy ACPI compatibility.  Breaking that may
break lot of existing users and we do not have a clean fallback
method.  

As far as powerpc is concerned, we can work with a single global
registration.  However we would like to have the same interface across
different archs.

With the new re-factoring (v7), Arun has killed most of the list
traversal and linking between various cpu's cpuidle_driver structures.
Now we have a per-cpu stack of registered devices and we lookup the
structs using online cpumasks.  The cpuidle_driver structure has list
of idle routing pointers (struct cpuidle_state) and rest of it is
statistics that needs to be maintained at a per-cpu level anyway.  All
that is duplicated here is the array of idle routines (struct
cpuidle_state) on each cpu.

The objective of the refactoring is to have a single common idle
routine management framework (remove pm_idle) and we have it done
through cpuidle registration framework.  We can incrementally remove
the per-cpu registration later easily by splitting the cpuidle_driver
structure.

--Vaidy


  reply	other threads:[~2009-10-07 11:26 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-06 15:24 [v7 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER Arun R Bharadwaj
2009-10-06 15:24 ` Arun R Bharadwaj
2009-10-06 15:24 ` Arun R Bharadwaj
2009-10-06 15:26 ` [v7 PATCH 1/7]: cpuidle: cleanup drivers/cpuidle/cpuidle.c Arun R Bharadwaj
2009-10-06 15:26   ` Arun R Bharadwaj
2009-10-06 15:26   ` Arun R Bharadwaj
2009-10-06 15:30 ` [v7 PATCH 2/7]: cpuidle: implement a list based approach to register a set of idle routines Arun R Bharadwaj
2009-10-06 15:30   ` Arun R Bharadwaj
2009-10-06 15:30   ` Arun R Bharadwaj
2009-10-06 15:31 ` [v7 PATCH 3/7]: x86: refactor x86 idle power management code and remove all instances of pm_idle Arun R Bharadwaj
2009-10-06 15:31   ` Arun R Bharadwaj
2009-10-06 15:31   ` Arun R Bharadwaj
2009-10-07 14:45   ` Peter Zijlstra
2009-10-07 14:45     ` Peter Zijlstra
2009-10-07 16:45     ` Arun R Bharadwaj
2009-10-07 16:45       ` Arun R Bharadwaj
2009-10-08  5:54     ` Arun R Bharadwaj
2009-10-08  5:54       ` Arun R Bharadwaj
2009-10-06 15:32 ` [v7 PATCH 4/7]: POWER: enable cpuidle for POWER Arun R Bharadwaj
2009-10-06 15:32   ` Arun R Bharadwaj
2009-10-06 15:32   ` Arun R Bharadwaj
2009-10-06 15:33 ` [v7 PATCH 5/7]: pSeries/cpuidle: remove dedicate/shared idle loops, which will be moved to arch/powerpc/platforms/pseries/processor_idle.c Arun R Bharadwaj
2009-10-06 15:33   ` Arun R Bharadwaj
2009-10-06 15:33   ` Arun R Bharadwaj
2009-10-06 15:34 ` [v7 PATCH 6/7]: POWER: add a default_idle idle loop for POWER Arun R Bharadwaj
2009-10-06 15:34   ` Arun R Bharadwaj
2009-10-06 15:34   ` Arun R Bharadwaj
2009-10-06 15:35 ` [v7 PATCH 7/7]: pSeries: implement pSeries processor idle module Arun R Bharadwaj
2009-10-06 15:35   ` Arun R Bharadwaj
2009-10-06 15:35   ` Arun R Bharadwaj
2009-10-07 13:50   ` Arun R Bharadwaj
2009-10-07 13:50     ` Arun R Bharadwaj
2009-10-07 13:50     ` Arun R Bharadwaj
2009-10-06 16:35 ` [v7 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER Arun R Bharadwaj
2009-10-06 16:35   ` Arun R Bharadwaj
2009-10-06 16:35   ` Arun R Bharadwaj
2009-10-06 18:04   ` Peter Zijlstra
2009-10-06 18:04     ` Peter Zijlstra
2009-10-07 11:26     ` Vaidyanathan Srinivasan [this message]
2009-10-07 11:26       ` Vaidyanathan Srinivasan
2009-10-07 11:47       ` Balbir Singh
2009-10-07 11:47         ` Balbir Singh
2009-10-07 13:24         ` Peter Zijlstra
2009-10-07 13:24           ` Peter Zijlstra
2009-10-07 13:05       ` Peter Zijlstra
2009-10-07 13:05         ` Peter Zijlstra
2009-10-07 13:05         ` Peter Zijlstra
2009-10-07 13:05         ` Peter Zijlstra

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=20091007112648.GC7646@dirshya.in.ibm.com \
    --to=svaidy@linux.vnet.ibm.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=arjan@infradead.org \
    --cc=arun@linux.vnet.ibm.com \
    --cc=ego@in.ibm.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    --cc=venkatesh.pallipadi@intel.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.