* [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
@ 2014-08-25 17:57 Shreyas B. Prabhu
0 siblings, 0 replies; 8+ messages in thread
From: Shreyas B. Prabhu @ 2014-08-25 17:57 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree, Srivatsa S. Bhat, linux-pm, Shreyas B. Prabhu,
Rafael J. Wysocki, Grant Likely, Rob Herring, Paul Mackerras,
Preeti U. Murthy, linuxppc-dev
Fast sleep is an idle state, where the core and the L1 and L2
caches are brought down to a threshold voltage. This also means that
the communication between L2 and L3 caches have to be fenced. However
the current P8 chips have a bug wherein this fencing between L2 and
L3 caches get delayed by a cpu cycle. This can delay L3 response to
the other cpus if they request for data during this time. Thus they
would fetch the same data from the memory which could lead to data
corruption if L3 cache is not flushed.
Patch 4 adds support to work around this.
'Deep Winkle' is a deeper idle state where core and private L2 are powered
off. While it offers higher power savings, it is at the cost of losing
hypervisor register state and higher latency.
Patch 5-9 adds support for winkle and uses it for offline cpus.
Patch 1 - Moves parameters required discover idle states to a location
common to both cpuidle driver and powernv core code
Patch 2 - Populates idle state details from device tree
Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: devicetree@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Preeti U Murthy (2):
cpuidle/powernv: Populate cpuidle state details by querying the
device-tree
powerpc/powernv/cpuidle: Add workaround to enable fastsleep
Shreyas B. Prabhu (6):
powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
fast-sleep
powerpc/powernv: Add OPAL call to save and restore
powerpc: Adding macro for accessing Thread Switch Control Register
powerpc/powernv: Add winkle infrastructure
powerpc/powernv: Discover and enable winkle
powerpc/powernv: Enter deepest supported idle state in offline
Srivatsa S. Bhat (1):
powerpc/powernv: Enable Offline CPUs to enter deep idle states
arch/powerpc/include/asm/machdep.h | 4 +
arch/powerpc/include/asm/opal.h | 10 ++
arch/powerpc/include/asm/paca.h | 3 +
arch/powerpc/include/asm/ppc-opcode.h | 2 +
arch/powerpc/include/asm/processor.h | 6 +-
arch/powerpc/include/asm/reg.h | 1 +
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/exceptions-64s.S | 37 ++---
arch/powerpc/kernel/idle.c | 30 ++++
arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
arch/powerpc/platforms/powernv/powernv.h | 8 +
arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
arch/powerpc/platforms/powernv/smp.c | 13 +-
arch/powerpc/platforms/powernv/subcore.c | 15 ++
drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
16 files changed, 439 insertions(+), 33 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
@ 2014-08-25 18:01 Shreyas B. Prabhu
2014-09-11 15:17 ` Shreyas B Prabhu
2014-09-18 3:11 ` Shreyas B Prabhu
0 siblings, 2 replies; 8+ messages in thread
From: Shreyas B. Prabhu @ 2014-08-25 18:01 UTC (permalink / raw)
To: linux-kernel
Cc: devicetree, Srivatsa S. Bhat, linux-pm, Shreyas B. Prabhu,
Rafael J. Wysocki, Grant Likely, Rob Herring, Paul Mackerras,
Preeti U. Murthy, linuxppc-dev
Fast sleep is an idle state, where the core and the L1 and L2
caches are brought down to a threshold voltage. This also means that
the communication between L2 and L3 caches have to be fenced. However
the current P8 chips have a bug wherein this fencing between L2 and
L3 caches get delayed by a cpu cycle. This can delay L3 response to
the other cpus if they request for data during this time. Thus they
would fetch the same data from the memory which could lead to data
corruption if L3 cache is not flushed.
Patch 4 adds support to work around this.
'Deep Winkle' is a deeper idle state where core and private L2 are powered
off. While it offers higher power savings, it is at the cost of losing
hypervisor register state and higher latency.
Patch 5-9 adds support for winkle and uses it for offline cpus.
Patch 1 - Moves parameters required discover idle states to a location
common to both cpuidle driver and powernv core code
Patch 2 - Populates idle state details from device tree
Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Grant Likely <grant.likely@linaro.org>
Cc: devicetree@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Preeti U Murthy (2):
cpuidle/powernv: Populate cpuidle state details by querying the
device-tree
powerpc/powernv/cpuidle: Add workaround to enable fastsleep
Shreyas B. Prabhu (6):
powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
fast-sleep
powerpc/powernv: Add OPAL call to save and restore
powerpc: Adding macro for accessing Thread Switch Control Register
powerpc/powernv: Add winkle infrastructure
powerpc/powernv: Discover and enable winkle
powerpc/powernv: Enter deepest supported idle state in offline
Srivatsa S. Bhat (1):
powerpc/powernv: Enable Offline CPUs to enter deep idle states
arch/powerpc/include/asm/machdep.h | 4 +
arch/powerpc/include/asm/opal.h | 10 ++
arch/powerpc/include/asm/paca.h | 3 +
arch/powerpc/include/asm/ppc-opcode.h | 2 +
arch/powerpc/include/asm/processor.h | 6 +-
arch/powerpc/include/asm/reg.h | 1 +
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/exceptions-64s.S | 37 ++---
arch/powerpc/kernel/idle.c | 30 ++++
arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
arch/powerpc/platforms/powernv/powernv.h | 8 +
arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
arch/powerpc/platforms/powernv/smp.c | 13 +-
arch/powerpc/platforms/powernv/subcore.c | 15 ++
drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
16 files changed, 439 insertions(+), 33 deletions(-)
--
1.9.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
2014-08-25 18:01 Shreyas B. Prabhu
@ 2014-09-11 15:17 ` Shreyas B Prabhu
2014-09-18 3:11 ` Shreyas B Prabhu
1 sibling, 0 replies; 8+ messages in thread
From: Shreyas B Prabhu @ 2014-09-11 15:17 UTC (permalink / raw)
To: linux-kernel, Benjamin Herrenschmidt, Michael Ellerman
Cc: devicetree, Srivatsa S. Bhat, linux-pm, Rafael J. Wysocki,
Grant Likely, Rob Herring, Paul Mackerras, Preeti U. Murthy,
linuxppc-dev
Hi,
Any updates on this patch series?
On Monday 25 August 2014 11:31 PM, Shreyas B. Prabhu wrote:
> Fast sleep is an idle state, where the core and the L1 and L2
> caches are brought down to a threshold voltage. This also means that
> the communication between L2 and L3 caches have to be fenced. However
> the current P8 chips have a bug wherein this fencing between L2 and
> L3 caches get delayed by a cpu cycle. This can delay L3 response to
> the other cpus if they request for data during this time. Thus they
> would fetch the same data from the memory which could lead to data
> corruption if L3 cache is not flushed.
> Patch 4 adds support to work around this.
>
> 'Deep Winkle' is a deeper idle state where core and private L2 are powered
> off. While it offers higher power savings, it is at the cost of losing
> hypervisor register state and higher latency.
> Patch 5-9 adds support for winkle and uses it for offline cpus.
>
> Patch 1 - Moves parameters required discover idle states to a location
> common to both cpuidle driver and powernv core code
> Patch 2 - Populates idle state details from device tree
> Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
>
>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
> Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
> Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Grant Likely <grant.likely@linaro.org>
> Cc: devicetree@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linuxppc-dev@lists.ozlabs.org
>
> Preeti U Murthy (2):
> cpuidle/powernv: Populate cpuidle state details by querying the
> device-tree
> powerpc/powernv/cpuidle: Add workaround to enable fastsleep
>
> Shreyas B. Prabhu (6):
> powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
> fast-sleep
> powerpc/powernv: Add OPAL call to save and restore
> powerpc: Adding macro for accessing Thread Switch Control Register
> powerpc/powernv: Add winkle infrastructure
> powerpc/powernv: Discover and enable winkle
> powerpc/powernv: Enter deepest supported idle state in offline
>
> Srivatsa S. Bhat (1):
> powerpc/powernv: Enable Offline CPUs to enter deep idle states
>
> arch/powerpc/include/asm/machdep.h | 4 +
> arch/powerpc/include/asm/opal.h | 10 ++
> arch/powerpc/include/asm/paca.h | 3 +
> arch/powerpc/include/asm/ppc-opcode.h | 2 +
> arch/powerpc/include/asm/processor.h | 6 +-
> arch/powerpc/include/asm/reg.h | 1 +
> arch/powerpc/kernel/asm-offsets.c | 1 +
> arch/powerpc/kernel/exceptions-64s.S | 37 ++---
> arch/powerpc/kernel/idle.c | 30 ++++
> arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
> arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
> arch/powerpc/platforms/powernv/powernv.h | 8 +
> arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
> arch/powerpc/platforms/powernv/smp.c | 13 +-
> arch/powerpc/platforms/powernv/subcore.c | 15 ++
> drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
> 16 files changed, 439 insertions(+), 33 deletions(-)
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
2014-08-25 18:01 Shreyas B. Prabhu
2014-09-11 15:17 ` Shreyas B Prabhu
@ 2014-09-18 3:11 ` Shreyas B Prabhu
2014-09-29 10:23 ` Shreyas B Prabhu
1 sibling, 1 reply; 8+ messages in thread
From: Shreyas B Prabhu @ 2014-09-18 3:11 UTC (permalink / raw)
To: linux-kernel, Michael Ellerman
Cc: devicetree, Srivatsa S. Bhat, linux-pm, Rafael J. Wysocki,
Grant Likely, Rob Herring, Paul Mackerras, Preeti U. Murthy,
linuxppc-dev
Hi,
In this patch series we use winkle for offlined cores. I successfully
tested the working of this with subcore functionality.
Test scenario was as follows:
1. Set SMT mode to 1, Set subores-per-core to 1
2. Offline a core, in this case cpu 32 (sending it to winkle)
3. Set subcores-per-core to 4
4. Online the core
5. Start a guest (Topology 1 core 2 threads) on a subcore, in this case
on cpu 36
This works without any glitch.
Thanks,
Shreyas
On Monday 25 August 2014 11:31 PM, Shreyas B. Prabhu wrote:
> Fast sleep is an idle state, where the core and the L1 and L2
> caches are brought down to a threshold voltage. This also means that
> the communication between L2 and L3 caches have to be fenced. However
> the current P8 chips have a bug wherein this fencing between L2 and
> L3 caches get delayed by a cpu cycle. This can delay L3 response to
> the other cpus if they request for data during this time. Thus they
> would fetch the same data from the memory which could lead to data
> corruption if L3 cache is not flushed.
> Patch 4 adds support to work around this.
>
> 'Deep Winkle' is a deeper idle state where core and private L2 are powered
> off. While it offers higher power savings, it is at the cost of losing
> hypervisor register state and higher latency.
> Patch 5-9 adds support for winkle and uses it for offline cpus.
>
> Patch 1 - Moves parameters required discover idle states to a location
> common to both cpuidle driver and powernv core code
> Patch 2 - Populates idle state details from device tree
> Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
>
>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Michael Ellerman <mpe@ellerman.id.au>
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
> Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
> Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: Grant Likely <grant.likely@linaro.org>
> Cc: devicetree@vger.kernel.org
> Cc: linux-pm@vger.kernel.org
> Cc: linuxppc-dev@lists.ozlabs.org
>
> Preeti U Murthy (2):
> cpuidle/powernv: Populate cpuidle state details by querying the
> device-tree
> powerpc/powernv/cpuidle: Add workaround to enable fastsleep
>
> Shreyas B. Prabhu (6):
> powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
> fast-sleep
> powerpc/powernv: Add OPAL call to save and restore
> powerpc: Adding macro for accessing Thread Switch Control Register
> powerpc/powernv: Add winkle infrastructure
> powerpc/powernv: Discover and enable winkle
> powerpc/powernv: Enter deepest supported idle state in offline
>
> Srivatsa S. Bhat (1):
> powerpc/powernv: Enable Offline CPUs to enter deep idle states
>
> arch/powerpc/include/asm/machdep.h | 4 +
> arch/powerpc/include/asm/opal.h | 10 ++
> arch/powerpc/include/asm/paca.h | 3 +
> arch/powerpc/include/asm/ppc-opcode.h | 2 +
> arch/powerpc/include/asm/processor.h | 6 +-
> arch/powerpc/include/asm/reg.h | 1 +
> arch/powerpc/kernel/asm-offsets.c | 1 +
> arch/powerpc/kernel/exceptions-64s.S | 37 ++---
> arch/powerpc/kernel/idle.c | 30 ++++
> arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
> arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
> arch/powerpc/platforms/powernv/powernv.h | 8 +
> arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
> arch/powerpc/platforms/powernv/smp.c | 13 +-
> arch/powerpc/platforms/powernv/subcore.c | 15 ++
> drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
> 16 files changed, 439 insertions(+), 33 deletions(-)
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
2014-09-18 3:11 ` Shreyas B Prabhu
@ 2014-09-29 10:23 ` Shreyas B Prabhu
2014-09-29 23:28 ` Rafael J. Wysocki
0 siblings, 1 reply; 8+ messages in thread
From: Shreyas B Prabhu @ 2014-09-29 10:23 UTC (permalink / raw)
To: linux-kernel, Michael Ellerman
Cc: devicetree, Srivatsa S. Bhat, linux-pm, Rafael J. Wysocki,
Grant Likely, Rob Herring, Paul Mackerras, Preeti U. Murthy,
linuxppc-dev
Hi,
Any updates on this patch series?
On Thursday 18 September 2014 08:41 AM, Shreyas B Prabhu wrote:
> Hi,
>
> In this patch series we use winkle for offlined cores. I successfully
> tested the working of this with subcore functionality.
>
> Test scenario was as follows:
> 1. Set SMT mode to 1, Set subores-per-core to 1
> 2. Offline a core, in this case cpu 32 (sending it to winkle)
> 3. Set subcores-per-core to 4
> 4. Online the core
> 5. Start a guest (Topology 1 core 2 threads) on a subcore, in this case
> on cpu 36
>
> This works without any glitch.
>
> Thanks,
> Shreyas
>
> On Monday 25 August 2014 11:31 PM, Shreyas B. Prabhu wrote:
>> Fast sleep is an idle state, where the core and the L1 and L2
>> caches are brought down to a threshold voltage. This also means that
>> the communication between L2 and L3 caches have to be fenced. However
>> the current P8 chips have a bug wherein this fencing between L2 and
>> L3 caches get delayed by a cpu cycle. This can delay L3 response to
>> the other cpus if they request for data during this time. Thus they
>> would fetch the same data from the memory which could lead to data
>> corruption if L3 cache is not flushed.
>> Patch 4 adds support to work around this.
>>
>> 'Deep Winkle' is a deeper idle state where core and private L2 are powered
>> off. While it offers higher power savings, it is at the cost of losing
>> hypervisor register state and higher latency.
>> Patch 5-9 adds support for winkle and uses it for offline cpus.
>>
>> Patch 1 - Moves parameters required discover idle states to a location
>> common to both cpuidle driver and powernv core code
>> Patch 2 - Populates idle state details from device tree
>> Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
>>
>>
>> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> Cc: Paul Mackerras <paulus@samba.org>
>> Cc: Michael Ellerman <mpe@ellerman.id.au>
>> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
>> Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
>> Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
>> Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
>> Cc: Rob Herring <robh+dt@kernel.org>
>> Cc: Grant Likely <grant.likely@linaro.org>
>> Cc: devicetree@vger.kernel.org
>> Cc: linux-pm@vger.kernel.org
>> Cc: linuxppc-dev@lists.ozlabs.org
>>
>> Preeti U Murthy (2):
>> cpuidle/powernv: Populate cpuidle state details by querying the
>> device-tree
>> powerpc/powernv/cpuidle: Add workaround to enable fastsleep
>>
>> Shreyas B. Prabhu (6):
>> powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
>> fast-sleep
>> powerpc/powernv: Add OPAL call to save and restore
>> powerpc: Adding macro for accessing Thread Switch Control Register
>> powerpc/powernv: Add winkle infrastructure
>> powerpc/powernv: Discover and enable winkle
>> powerpc/powernv: Enter deepest supported idle state in offline
>>
>> Srivatsa S. Bhat (1):
>> powerpc/powernv: Enable Offline CPUs to enter deep idle states
>>
>> arch/powerpc/include/asm/machdep.h | 4 +
>> arch/powerpc/include/asm/opal.h | 10 ++
>> arch/powerpc/include/asm/paca.h | 3 +
>> arch/powerpc/include/asm/ppc-opcode.h | 2 +
>> arch/powerpc/include/asm/processor.h | 6 +-
>> arch/powerpc/include/asm/reg.h | 1 +
>> arch/powerpc/kernel/asm-offsets.c | 1 +
>> arch/powerpc/kernel/exceptions-64s.S | 37 ++---
>> arch/powerpc/kernel/idle.c | 30 ++++
>> arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
>> arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
>> arch/powerpc/platforms/powernv/powernv.h | 8 +
>> arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
>> arch/powerpc/platforms/powernv/smp.c | 13 +-
>> arch/powerpc/platforms/powernv/subcore.c | 15 ++
>> drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
>> 16 files changed, 439 insertions(+), 33 deletions(-)
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
2014-09-29 10:23 ` Shreyas B Prabhu
@ 2014-09-29 23:28 ` Rafael J. Wysocki
2014-09-30 8:12 ` Shreyas B Prabhu
0 siblings, 1 reply; 8+ messages in thread
From: Rafael J. Wysocki @ 2014-09-29 23:28 UTC (permalink / raw)
To: Shreyas B Prabhu
Cc: devicetree, Srivatsa S. Bhat, linux-pm, linux-kernel,
Grant Likely, Rob Herring, Paul Mackerras, Preeti U. Murthy,
linuxppc-dev
On Monday, September 29, 2014 03:53:06 PM Shreyas B Prabhu wrote:
> Hi,
> Any updates on this patch series?
I have a couple of patches from there in my tree it seems. Please have a look
at linux-pm.git/linux-next and please let me know if that's the case.
> On Thursday 18 September 2014 08:41 AM, Shreyas B Prabhu wrote:
> > Hi,
> >
> > In this patch series we use winkle for offlined cores. I successfully
> > tested the working of this with subcore functionality.
> >
> > Test scenario was as follows:
> > 1. Set SMT mode to 1, Set subores-per-core to 1
> > 2. Offline a core, in this case cpu 32 (sending it to winkle)
> > 3. Set subcores-per-core to 4
> > 4. Online the core
> > 5. Start a guest (Topology 1 core 2 threads) on a subcore, in this case
> > on cpu 36
> >
> > This works without any glitch.
> >
> > Thanks,
> > Shreyas
> >
> > On Monday 25 August 2014 11:31 PM, Shreyas B. Prabhu wrote:
> >> Fast sleep is an idle state, where the core and the L1 and L2
> >> caches are brought down to a threshold voltage. This also means that
> >> the communication between L2 and L3 caches have to be fenced. However
> >> the current P8 chips have a bug wherein this fencing between L2 and
> >> L3 caches get delayed by a cpu cycle. This can delay L3 response to
> >> the other cpus if they request for data during this time. Thus they
> >> would fetch the same data from the memory which could lead to data
> >> corruption if L3 cache is not flushed.
> >> Patch 4 adds support to work around this.
> >>
> >> 'Deep Winkle' is a deeper idle state where core and private L2 are powered
> >> off. While it offers higher power savings, it is at the cost of losing
> >> hypervisor register state and higher latency.
> >> Patch 5-9 adds support for winkle and uses it for offline cpus.
> >>
> >> Patch 1 - Moves parameters required discover idle states to a location
> >> common to both cpuidle driver and powernv core code
> >> Patch 2 - Populates idle state details from device tree
> >> Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
> >>
> >>
> >> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> >> Cc: Paul Mackerras <paulus@samba.org>
> >> Cc: Michael Ellerman <mpe@ellerman.id.au>
> >> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> >> Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
> >> Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
> >> Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
> >> Cc: Rob Herring <robh+dt@kernel.org>
> >> Cc: Grant Likely <grant.likely@linaro.org>
> >> Cc: devicetree@vger.kernel.org
> >> Cc: linux-pm@vger.kernel.org
> >> Cc: linuxppc-dev@lists.ozlabs.org
> >>
> >> Preeti U Murthy (2):
> >> cpuidle/powernv: Populate cpuidle state details by querying the
> >> device-tree
> >> powerpc/powernv/cpuidle: Add workaround to enable fastsleep
> >>
> >> Shreyas B. Prabhu (6):
> >> powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
> >> fast-sleep
> >> powerpc/powernv: Add OPAL call to save and restore
> >> powerpc: Adding macro for accessing Thread Switch Control Register
> >> powerpc/powernv: Add winkle infrastructure
> >> powerpc/powernv: Discover and enable winkle
> >> powerpc/powernv: Enter deepest supported idle state in offline
> >>
> >> Srivatsa S. Bhat (1):
> >> powerpc/powernv: Enable Offline CPUs to enter deep idle states
> >>
> >> arch/powerpc/include/asm/machdep.h | 4 +
> >> arch/powerpc/include/asm/opal.h | 10 ++
> >> arch/powerpc/include/asm/paca.h | 3 +
> >> arch/powerpc/include/asm/ppc-opcode.h | 2 +
> >> arch/powerpc/include/asm/processor.h | 6 +-
> >> arch/powerpc/include/asm/reg.h | 1 +
> >> arch/powerpc/kernel/asm-offsets.c | 1 +
> >> arch/powerpc/kernel/exceptions-64s.S | 37 ++---
> >> arch/powerpc/kernel/idle.c | 30 ++++
> >> arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
> >> arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
> >> arch/powerpc/platforms/powernv/powernv.h | 8 +
> >> arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
> >> arch/powerpc/platforms/powernv/smp.c | 13 +-
> >> arch/powerpc/platforms/powernv/subcore.c | 15 ++
> >> drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
> >> 16 files changed, 439 insertions(+), 33 deletions(-)
> >>
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
2014-09-29 23:28 ` Rafael J. Wysocki
@ 2014-09-30 8:12 ` Shreyas B Prabhu
2014-09-30 20:13 ` Rafael J. Wysocki
0 siblings, 1 reply; 8+ messages in thread
From: Shreyas B Prabhu @ 2014-09-30 8:12 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: devicetree, Srivatsa S. Bhat, linux-pm, linux-kernel,
Grant Likely, Rob Herring, Paul Mackerras, Preeti U. Murthy,
linuxppc-dev
Hi Rafael,
On Tuesday 30 September 2014 04:58 AM, Rafael J. Wysocki wrote:
> On Monday, September 29, 2014 03:53:06 PM Shreyas B Prabhu wrote:
>> Hi,
>> Any updates on this patch series?
>
> I have a couple of patches from there in my tree it seems. Please have a look
> at linux-pm.git/linux-next and please let me know if that's the case.
>
I checked linux-pm.git/linux-net (Last commit 067c17382165). None of the patches
in this series are present in the tree.
>
>> On Thursday 18 September 2014 08:41 AM, Shreyas B Prabhu wrote:
>>> Hi,
>>>
>>> In this patch series we use winkle for offlined cores. I successfully
>>> tested the working of this with subcore functionality.
>>>
>>> Test scenario was as follows:
>>> 1. Set SMT mode to 1, Set subores-per-core to 1
>>> 2. Offline a core, in this case cpu 32 (sending it to winkle)
>>> 3. Set subcores-per-core to 4
>>> 4. Online the core
>>> 5. Start a guest (Topology 1 core 2 threads) on a subcore, in this case
>>> on cpu 36
>>>
>>> This works without any glitch.
>>>
>>> Thanks,
>>> Shreyas
>>>
>>> On Monday 25 August 2014 11:31 PM, Shreyas B. Prabhu wrote:
>>>> Fast sleep is an idle state, where the core and the L1 and L2
>>>> caches are brought down to a threshold voltage. This also means that
>>>> the communication between L2 and L3 caches have to be fenced. However
>>>> the current P8 chips have a bug wherein this fencing between L2 and
>>>> L3 caches get delayed by a cpu cycle. This can delay L3 response to
>>>> the other cpus if they request for data during this time. Thus they
>>>> would fetch the same data from the memory which could lead to data
>>>> corruption if L3 cache is not flushed.
>>>> Patch 4 adds support to work around this.
>>>>
>>>> 'Deep Winkle' is a deeper idle state where core and private L2 are powered
>>>> off. While it offers higher power savings, it is at the cost of losing
>>>> hypervisor register state and higher latency.
>>>> Patch 5-9 adds support for winkle and uses it for offline cpus.
>>>>
>>>> Patch 1 - Moves parameters required discover idle states to a location
>>>> common to both cpuidle driver and powernv core code
>>>> Patch 2 - Populates idle state details from device tree
>>>> Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
>>>>
>>>>
>>>> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>>>> Cc: Paul Mackerras <paulus@samba.org>
>>>> Cc: Michael Ellerman <mpe@ellerman.id.au>
>>>> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
>>>> Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
>>>> Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
>>>> Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
>>>> Cc: Rob Herring <robh+dt@kernel.org>
>>>> Cc: Grant Likely <grant.likely@linaro.org>
>>>> Cc: devicetree@vger.kernel.org
>>>> Cc: linux-pm@vger.kernel.org
>>>> Cc: linuxppc-dev@lists.ozlabs.org
>>>>
>>>> Preeti U Murthy (2):
>>>> cpuidle/powernv: Populate cpuidle state details by querying the
>>>> device-tree
>>>> powerpc/powernv/cpuidle: Add workaround to enable fastsleep
>>>>
>>>> Shreyas B. Prabhu (6):
>>>> powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
>>>> fast-sleep
>>>> powerpc/powernv: Add OPAL call to save and restore
>>>> powerpc: Adding macro for accessing Thread Switch Control Register
>>>> powerpc/powernv: Add winkle infrastructure
>>>> powerpc/powernv: Discover and enable winkle
>>>> powerpc/powernv: Enter deepest supported idle state in offline
>>>>
>>>> Srivatsa S. Bhat (1):
>>>> powerpc/powernv: Enable Offline CPUs to enter deep idle states
>>>>
>>>> arch/powerpc/include/asm/machdep.h | 4 +
>>>> arch/powerpc/include/asm/opal.h | 10 ++
>>>> arch/powerpc/include/asm/paca.h | 3 +
>>>> arch/powerpc/include/asm/ppc-opcode.h | 2 +
>>>> arch/powerpc/include/asm/processor.h | 6 +-
>>>> arch/powerpc/include/asm/reg.h | 1 +
>>>> arch/powerpc/kernel/asm-offsets.c | 1 +
>>>> arch/powerpc/kernel/exceptions-64s.S | 37 ++---
>>>> arch/powerpc/kernel/idle.c | 30 ++++
>>>> arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
>>>> arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
>>>> arch/powerpc/platforms/powernv/powernv.h | 8 +
>>>> arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
>>>> arch/powerpc/platforms/powernv/smp.c | 13 +-
>>>> arch/powerpc/platforms/powernv/subcore.c | 15 ++
>>>> drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
>>>> 16 files changed, 439 insertions(+), 33 deletions(-)
>>>>
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle
2014-09-30 8:12 ` Shreyas B Prabhu
@ 2014-09-30 20:13 ` Rafael J. Wysocki
0 siblings, 0 replies; 8+ messages in thread
From: Rafael J. Wysocki @ 2014-09-30 20:13 UTC (permalink / raw)
To: Shreyas B Prabhu
Cc: devicetree, Srivatsa S. Bhat, linux-pm, linux-kernel,
Grant Likely, Rob Herring, Paul Mackerras, Preeti U. Murthy,
linuxppc-dev
On Tuesday, September 30, 2014 01:42:05 PM Shreyas B Prabhu wrote:
> Hi Rafael,
>
> On Tuesday 30 September 2014 04:58 AM, Rafael J. Wysocki wrote:
> > On Monday, September 29, 2014 03:53:06 PM Shreyas B Prabhu wrote:
> >> Hi,
> >> Any updates on this patch series?
> >
> > I have a couple of patches from there in my tree it seems. Please have a look
> > at linux-pm.git/linux-next and please let me know if that's the case.
> >
>
> I checked linux-pm.git/linux-net (Last commit 067c17382165). None of the patches
> in this series are present in the tree.
OK, thanks for checking.
Would you mind resending it with any ACKs or Reviewed-by tags received so far?
> >> On Thursday 18 September 2014 08:41 AM, Shreyas B Prabhu wrote:
> >>> Hi,
> >>>
> >>> In this patch series we use winkle for offlined cores. I successfully
> >>> tested the working of this with subcore functionality.
> >>>
> >>> Test scenario was as follows:
> >>> 1. Set SMT mode to 1, Set subores-per-core to 1
> >>> 2. Offline a core, in this case cpu 32 (sending it to winkle)
> >>> 3. Set subcores-per-core to 4
> >>> 4. Online the core
> >>> 5. Start a guest (Topology 1 core 2 threads) on a subcore, in this case
> >>> on cpu 36
> >>>
> >>> This works without any glitch.
> >>>
> >>> Thanks,
> >>> Shreyas
> >>>
> >>> On Monday 25 August 2014 11:31 PM, Shreyas B. Prabhu wrote:
> >>>> Fast sleep is an idle state, where the core and the L1 and L2
> >>>> caches are brought down to a threshold voltage. This also means that
> >>>> the communication between L2 and L3 caches have to be fenced. However
> >>>> the current P8 chips have a bug wherein this fencing between L2 and
> >>>> L3 caches get delayed by a cpu cycle. This can delay L3 response to
> >>>> the other cpus if they request for data during this time. Thus they
> >>>> would fetch the same data from the memory which could lead to data
> >>>> corruption if L3 cache is not flushed.
> >>>> Patch 4 adds support to work around this.
> >>>>
> >>>> 'Deep Winkle' is a deeper idle state where core and private L2 are powered
> >>>> off. While it offers higher power savings, it is at the cost of losing
> >>>> hypervisor register state and higher latency.
> >>>> Patch 5-9 adds support for winkle and uses it for offline cpus.
> >>>>
> >>>> Patch 1 - Moves parameters required discover idle states to a location
> >>>> common to both cpuidle driver and powernv core code
> >>>> Patch 2 - Populates idle state details from device tree
> >>>> Patch 3 - Enables cpus to run guest after waking up from fastsleep/winkle
> >>>>
> >>>>
> >>>> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> >>>> Cc: Paul Mackerras <paulus@samba.org>
> >>>> Cc: Michael Ellerman <mpe@ellerman.id.au>
> >>>> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
> >>>> Cc: Srivatsa S. Bhat <srivatsa@MIT.EDU>
> >>>> Cc: Preeti U. Murthy <preeti@linux.vnet.ibm.com>
> >>>> Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
> >>>> Cc: Rob Herring <robh+dt@kernel.org>
> >>>> Cc: Grant Likely <grant.likely@linaro.org>
> >>>> Cc: devicetree@vger.kernel.org
> >>>> Cc: linux-pm@vger.kernel.org
> >>>> Cc: linuxppc-dev@lists.ozlabs.org
> >>>>
> >>>> Preeti U Murthy (2):
> >>>> cpuidle/powernv: Populate cpuidle state details by querying the
> >>>> device-tree
> >>>> powerpc/powernv/cpuidle: Add workaround to enable fastsleep
> >>>>
> >>>> Shreyas B. Prabhu (6):
> >>>> powerpc/kvm/book3s_hv: Enable CPUs to run guest after waking up from
> >>>> fast-sleep
> >>>> powerpc/powernv: Add OPAL call to save and restore
> >>>> powerpc: Adding macro for accessing Thread Switch Control Register
> >>>> powerpc/powernv: Add winkle infrastructure
> >>>> powerpc/powernv: Discover and enable winkle
> >>>> powerpc/powernv: Enter deepest supported idle state in offline
> >>>>
> >>>> Srivatsa S. Bhat (1):
> >>>> powerpc/powernv: Enable Offline CPUs to enter deep idle states
> >>>>
> >>>> arch/powerpc/include/asm/machdep.h | 4 +
> >>>> arch/powerpc/include/asm/opal.h | 10 ++
> >>>> arch/powerpc/include/asm/paca.h | 3 +
> >>>> arch/powerpc/include/asm/ppc-opcode.h | 2 +
> >>>> arch/powerpc/include/asm/processor.h | 6 +-
> >>>> arch/powerpc/include/asm/reg.h | 1 +
> >>>> arch/powerpc/kernel/asm-offsets.c | 1 +
> >>>> arch/powerpc/kernel/exceptions-64s.S | 37 ++---
> >>>> arch/powerpc/kernel/idle.c | 30 ++++
> >>>> arch/powerpc/kernel/idle_power7.S | 83 +++++++++-
> >>>> arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +
> >>>> arch/powerpc/platforms/powernv/powernv.h | 8 +
> >>>> arch/powerpc/platforms/powernv/setup.c | 217 +++++++++++++++++++++++++
> >>>> arch/powerpc/platforms/powernv/smp.c | 13 +-
> >>>> arch/powerpc/platforms/powernv/subcore.c | 15 ++
> >>>> drivers/cpuidle/cpuidle-powernv.c | 40 ++++-
> >>>> 16 files changed, 439 insertions(+), 33 deletions(-)
> >>>>
> >>
> >
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-09-30 19:53 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-25 17:57 [PATCH 0/9] powerpc/powernv: Support for fastsleep and winkle Shreyas B. Prabhu
-- strict thread matches above, loose matches on Subject: below --
2014-08-25 18:01 Shreyas B. Prabhu
2014-09-11 15:17 ` Shreyas B Prabhu
2014-09-18 3:11 ` Shreyas B Prabhu
2014-09-29 10:23 ` Shreyas B Prabhu
2014-09-29 23:28 ` Rafael J. Wysocki
2014-09-30 8:12 ` Shreyas B Prabhu
2014-09-30 20:13 ` Rafael J. Wysocki
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).