diff for duplicates of <1467946148.27479.163.camel@neuling.org> diff --git a/a/1.txt b/N1/1.txt index 997d9f7..f03346a 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,5 +1,5 @@ Except for the issue with patch 7 I've already commented on the rest of -this series is good with me. FWIW: +this series is good with me. =C2=A0FWIW: Acked-by: Michael Neuling <mikey@neuling.org> @@ -7,106 +7,124 @@ Thanks. On Fri, 2016-07-08 at 02:17 +0530, Shreyas B. Prabhu wrote: > POWER ISA v3 defines a new idle processor core mechanism. In summary, -> a) new instruction named stop is added. This instruction replaces +> =C2=A0a) new instruction named stop is added. This instruction replaces > instructions like nap, sleep, rvwinkle. -> b) new per thread SPR named PSSCR is added which controls the behavior -> of stop instruction. -> +> =C2=A0b) new per thread SPR named PSSCR is added which controls the behav= +ior +> of stop instruction.=C2=A0 +> =09 > PSSCR has following key fields -> Bits 0:3 - Power-Saving Level Status. This field indicates the +> Bits 0:3=C2=A0=C2=A0- Power-Saving Level Status. This field indicates th= +e > lowest power-saving state the thread entered since stop > instruction was last executed. -> -> Bit 42 - Enable State Loss -> 0 - No state is lost irrespective of other fields +> =09 +> Bit 42 - Enable State Loss=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= +=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 +> 0 - No state is lost irrespective of other fields=C2=A0=C2=A0 > 1 - Allows state loss -> -> Bits 44:47 - Power-Saving Level Limit +> =09 +> Bits 44:47 - Power-Saving Level Limit=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= +=A0 > This limits the power-saving level that can be entered into. -> -> Bits 60:63 - Requested Level +> =09 +> Bits 60:63 - Requested Level=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 > Used to specify which power-saving level must be entered on > executing stop instruction -> +> =09 > Stop idle states and their properties like name, latency, target > residency, psscr value are exposed via device tree. -> +>=20 > This patch series adds support for this new mechanism. -> +>=20 > Patches 1-6 are cleanups and code movement. > Patch 7 adds platform specific support for stop and psscr handling. > Patch 8 and 9 are minor cleanup in cpuidle driver. > Patch 10 adds cpuidle driver support. > Patch 11 makes offlined cpu use deepest stop state. -> +>=20 > Note: Documentation for the device tree bindings is posted here- > http://patchwork.ozlabs.org/patch/629125/ -> +>=20 > Changes in v7 -> ============= -> - File renamed to idle_book3s.S instead of idle_power_common.S -> - Comment changes -> - power_stop0, power_stop renamed to power9_idle and power_idle_stop -> - PSSCR template is now a macro instead of storing in paca -> - power9_idle in C file instead of assembly -> - Fixed TOC related bug -> - Handling subcore within FTR section -> - Functions in idle.c reordered and broken into multiple functions -> - calling __restore_cpu_power8/9 via cur_cpu_spec->cpu_restore -> - Added a minor patch with minor cleanups in cpuidle-powernv.c . This -> was mainly to make the existing code consistent with the review -> comments for new code -> - Using stack for variables while probing for idle states instead of -> kzalloc/kcalloc -> +> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +> =C2=A0- File renamed to idle_book3s.S instead of idle_power_common.S +> =C2=A0- Comment changes +> =C2=A0- power_stop0, power_stop renamed to power9_idle and power_idle_sto= +p +> =C2=A0- PSSCR template is now a macro instead of storing in paca +> =C2=A0- power9_idle in C file instead of assembly +> =C2=A0- Fixed TOC related bug +> =C2=A0- Handling subcore within FTR section +> =C2=A0- Functions in idle.c reordered and broken into multiple functions +> =C2=A0- calling __restore_cpu_power8/9 via cur_cpu_spec->cpu_restore=C2= +=A0 +> =C2=A0- Added a minor patch with minor cleanups in cpuidle-powernv.c . Th= +is +> =C2=A0=C2=A0=C2=A0was mainly to make the existing code consistent with th= +e review +> =C2=A0=C2=A0=C2=A0comments for new code +> =C2=A0- Using stack for variables while probing for idle states instead o= +f +> =C2=A0=C2=A0=C2=A0kzalloc/kcalloc +>=20 > Changes in v6 -> ============= -> - Restore new POWER ISA v3 SPRS when waking up from deep idle -> +> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +> =C2=A0- Restore new POWER ISA v3 SPRS when waking up from deep idle +>=20 > Changes in v5 -> ============= -> - Use generic cpuidle constant CPUIDLE_NAME_LEN -> - Fix return code handling for of_property_read_string_array -> - Use DT flags to determine if are using stop instruction, instead of -> cpu_has_feature -> - Removed uncessary cast with names -> - &stop_loop -> stop_loop -> - Added POWERNV_THRESHOLD_LATENCY_NS to filter out idle states with high latency -> +> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +> =C2=A0- Use generic cpuidle constant CPUIDLE_NAME_LEN +> =C2=A0- Fix return code handling for of_property_read_string_array +> =C2=A0- Use DT flags to determine if are using stop instruction, instead = +of +> =C2=A0=C2=A0=C2=A0cpu_has_feature +> =C2=A0- Removed uncessary cast with names +> =C2=A0- &stop_loop -> stop_loop +> =C2=A0- Added POWERNV_THRESHOLD_LATENCY_NS to filter out idle states with= + high latency +>=20 > Changes in v4 -> ============= -> - Added a patch to use PNV_THREAD_WINKLE macro while requesting for winkle -> - Moved power7_powersave_common rename to more appropriate patch -> - renaming power7_enter_nap_mode to pnv_enter_arch207_idle_mode -> - Added PSSCR layout to Patch 7's commit message -> - Improved / Fixed comments -> - Fixed whitespace error in paca.h -> - Using MAX_POSSIBLE_STOP_STATE macro instead of hardcoding 0xF has -> max possible stop state -> +> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +> =C2=A0- Added a patch to use PNV_THREAD_WINKLE macro while requesting for= + winkle +> =C2=A0- Moved power7_powersave_common rename to more appropriate patch +> =C2=A0- renaming power7_enter_nap_mode to pnv_enter_arch207_idle_mode +> =C2=A0- Added PSSCR layout to Patch 7's commit message +> =C2=A0- Improved / Fixed comments +> =C2=A0- Fixed whitespace error in paca.h +> =C2=A0- Using MAX_POSSIBLE_STOP_STATE macro instead of hardcoding 0xF has +> =C2=A0=C2=A0=C2=A0max possible stop state +>=20 > Changes in v3 -> ============= -> - Rebased on powerpc-next -> - Dropping patch 1 since we are not adding a new file for P9 idle support -> - Improved comments in multiple places -> - Moved GET_PACA from power7_restore_hyp_resource to System Reset -> - Instead of moving few functions from idle_power7 to idle_power_common, -> renaming idle_power7.S to idle_power_common.S -> - Moved HSTATE_HWTHREAD_STATE updation to power_powersave_common -> - Dropped earlier patch 5 which moved few macros from idle_power_common to -> asm/cpuidle.h. -> - Added a patch to rename reusable power7_* idle functions to pnv_* -> - Added new patch that creates abstraction for saving SPRs before -> entering deep idle states -> - Instead of introducing new file idle_power_stop.S, P9 idle support -> is added to idle_power_common.S using CPU_FTR sections. -> - Fixed r4 reg clobbering in power_stop0 -> +> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +> =C2=A0- Rebased on powerpc-next +> =C2=A0- Dropping patch 1 since we are not adding a new file for P9 idle s= +upport +> =C2=A0- Improved comments in multiple places +> =C2=A0- Moved GET_PACA from power7_restore_hyp_resource to System Reset +> =C2=A0- Instead of moving few functions from idle_power7 to idle_power_co= +mmon, +> =C2=A0=C2=A0=C2=A0renaming idle_power7.S to idle_power_common.S +> =C2=A0- Moved HSTATE_HWTHREAD_STATE updation to power_powersave_common +> =C2=A0- Dropped earlier patch 5 which moved few macros from idle_power_co= +mmon to +> =C2=A0=C2=A0=C2=A0asm/cpuidle.h.=C2=A0 +> =C2=A0- Added a patch to rename reusable power7_* idle functions to pnv_* +> =C2=A0- Added new patch that creates abstraction for saving SPRs before +> =C2=A0=C2=A0=C2=A0entering deep idle states +> =C2=A0- Instead of introducing new file idle_power_stop.S, P9 idle suppor= +t +> =C2=A0=C2=A0=C2=A0is added to idle_power_common.S using CPU_FTR sections. +> =C2=A0- Fixed r4 reg clobbering in power_stop0 +>=20 > Changes in v2 -> ============= -> - Rebased on v4.6-rc6 -> - Using CPU_FTR_ARCH_300 bit instead of CPU_FTR_STOP_INST -> +> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +> =C2=A0- Rebased on v4.6-rc6 +> =C2=A0- Using CPU_FTR_ARCH_300 bit instead of CPU_FTR_STOP_INST +>=20 > Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > Cc: Daniel Lezcano <daniel.lezcano@linaro.org> > Cc: linux-pm@vger.kernel.org @@ -117,40 +135,56 @@ On Fri, 2016-07-08 at 02:17 +0530, Shreyas B. Prabhu wrote: > Cc: linuxppc-dev@lists.ozlabs.org > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com> -> +>=20 > Shreyas B. Prabhu (11): -> powerpc/powernv: Use PNV_THREAD_WINKLE macro while requesting for -> winkle -> powerpc/kvm: make hypervisor state restore a function -> powerpc/powernv: Rename idle_power7.S to idle_book3s.S -> powerpc/powernv: Rename reusable idle functions to hardware agnostic -> names -> powerpc/powernv: Make pnv_powersave_common more generic -> powerpc/powernv: abstraction for saving SPRs before entering deep idle -> states -> powerpc/powernv: Add platform support for stop instruction -> cpuidle/powernv: Use CPUIDLE_STATE_MAX instead of -> MAX_POWERNV_IDLE_STATES -> cpuidle/powernv: cleanup powernv_add_idle_states -> cpuidle/powernv: Add support for POWER ISA v3 idle states -> powerpc/powernv: Use deepest stop state when cpu is offlined -> -> arch/powerpc/include/asm/cpuidle.h | 2 + -> arch/powerpc/include/asm/kvm_book3s_asm.h | 2 +- -> arch/powerpc/include/asm/opal-api.h | 11 +- -> arch/powerpc/include/asm/ppc-opcode.h | 4 + -> arch/powerpc/include/asm/processor.h | 2 + -> arch/powerpc/include/asm/reg.h | 10 + -> arch/powerpc/kernel/Makefile | 2 +- -> arch/powerpc/kernel/exceptions-64s.S | 30 +- -> arch/powerpc/kernel/idle_book3s.S | 664 ++++++++++++++++++++++++++++++ -> arch/powerpc/kernel/idle_power7.S | 515 ----------------------- -> arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 +- -> arch/powerpc/platforms/powernv/idle.c | 185 +++++++-- -> arch/powerpc/platforms/powernv/powernv.h | 1 + -> arch/powerpc/platforms/powernv/smp.c | 4 +- -> drivers/cpuidle/cpuidle-powernv.c | 99 ++++- -> 15 files changed, 940 insertions(+), 595 deletions(-) -> create mode 100644 arch/powerpc/kernel/idle_book3s.S -> delete mode 100644 arch/powerpc/kernel/idle_power7.S -> +> =C2=A0 powerpc/powernv: Use PNV_THREAD_WINKLE macro while requesting for +> =C2=A0=C2=A0=C2=A0=C2=A0winkle +> =C2=A0 powerpc/kvm: make hypervisor state restore a function +> =C2=A0 powerpc/powernv: Rename idle_power7.S to idle_book3s.S +> =C2=A0 powerpc/powernv: Rename reusable idle functions to hardware agnost= +ic +> =C2=A0=C2=A0=C2=A0=C2=A0names +> =C2=A0 powerpc/powernv: Make pnv_powersave_common more generic +> =C2=A0 powerpc/powernv: abstraction for saving SPRs before entering deep = +idle +> =C2=A0=C2=A0=C2=A0=C2=A0states +> =C2=A0 powerpc/powernv: Add platform support for stop instruction +> =C2=A0 cpuidle/powernv: Use CPUIDLE_STATE_MAX instead of +> =C2=A0=C2=A0=C2=A0=C2=A0MAX_POWERNV_IDLE_STATES +> =C2=A0 cpuidle/powernv: cleanup powernv_add_idle_states +> =C2=A0 cpuidle/powernv: Add support for POWER ISA v3 idle states +> =C2=A0 powerpc/powernv: Use deepest stop state when cpu is offlined +>=20 +> =C2=A0arch/powerpc/include/asm/cpuidle.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= +=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A02 + +> =C2=A0arch/powerpc/include/asm/kvm_book3s_asm.h |=C2=A0=C2=A0=C2=A02 +- +> =C2=A0arch/powerpc/include/asm/opal-api.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0=C2=A0|=C2=A0=C2=A011 +- +> =C2=A0arch/powerpc/include/asm/ppc-opcode.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +|=C2=A0=C2=A0=C2=A04 + +> =C2=A0arch/powerpc/include/asm/processor.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0|=C2=A0=C2=A0=C2=A02 + +> =C2=A0arch/powerpc/include/asm/reg.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A010 + +> =C2=A0arch/powerpc/kernel/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= +=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A02 +- +> =C2=A0arch/powerpc/kernel/exceptions-64s.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0|=C2=A0=C2=A030 +- +> =C2=A0arch/powerpc/kernel/idle_book3s.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= +=A0=C2=A0=C2=A0=C2=A0| 664 ++++++++++++++++++++++++++++++ +> =C2=A0arch/powerpc/kernel/idle_power7.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= +=A0=C2=A0=C2=A0=C2=A0| 515 ----------------------- +> =C2=A0arch/powerpc/kvm/book3s_hv_rmhandlers.S=C2=A0=C2=A0=C2=A0|=C2=A0=C2= +=A0=C2=A04 +- +> =C2=A0arch/powerpc/platforms/powernv/idle.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +| 185 +++++++-- +> =C2=A0arch/powerpc/platforms/powernv/powernv.h=C2=A0=C2=A0|=C2=A0=C2=A0= +=C2=A01 + +> =C2=A0arch/powerpc/platforms/powernv/smp.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= +=C2=A0|=C2=A0=C2=A0=C2=A04 +- +> =C2=A0drivers/cpuidle/cpuidle-powernv.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= +=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A099 ++++- +> =C2=A015 files changed, 940 insertions(+), 595 deletions(-) +> =C2=A0create mode 100644 arch/powerpc/kernel/idle_book3s.S +> =C2=A0delete mode 100644 arch/powerpc/kernel/idle_power7.S +>=20 diff --git a/a/content_digest b/N1/content_digest index 78c6d33..578fbbe 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -18,7 +18,7 @@ "\00:1\0" "b\0" "Except for the issue with patch 7 I've already commented on the rest of\n" - "this series is good with me. \302\240FWIW:\n" + "this series is good with me. =C2=A0FWIW:\n" "\n" "Acked-by: Michael Neuling <mikey@neuling.org>\n" "\n" @@ -26,106 +26,124 @@ "\n" "On Fri, 2016-07-08 at 02:17 +0530, Shreyas B. Prabhu wrote:\n" "> POWER ISA v3 defines a new idle processor core mechanism. In summary,\n" - "> \302\240a) new instruction named stop is added. This instruction replaces\n" + "> =C2=A0a) new instruction named stop is added. This instruction replaces\n" "> \tinstructions like nap, sleep, rvwinkle.\n" - "> \302\240b) new per thread SPR named PSSCR is added which controls the behavior\n" - "> \tof stop instruction.\302\240\n" - "> \t\t\n" + "> =C2=A0b) new per thread SPR named PSSCR is added which controls the behav=\n" + "ior\n" + "> \tof stop instruction.=C2=A0\n" + "> \t=09\n" "> PSSCR has following key fields\n" - "> \tBits 0:3\302\240\302\240- Power-Saving Level Status. This field indicates the\n" + "> \tBits 0:3=C2=A0=C2=A0- Power-Saving Level Status. This field indicates th=\n" + "e\n" "> \tlowest power-saving state the thread entered since stop\n" "> \tinstruction was last executed.\n" - "> \t\t\n" - "> \tBit 42 - Enable State Loss\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\n" - "> \t0 - No state is lost irrespective of other fields\302\240\302\240\n" + "> \t=09\n" + "> \tBit 42 - Enable State Loss=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=\n" + "=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0\n" + "> \t0 - No state is lost irrespective of other fields=C2=A0=C2=A0\n" "> \t1 - Allows state loss\n" - "> \t\t\n" - "> \tBits 44:47 - Power-Saving Level Limit\302\240\302\240\302\240\302\240\302\240\302\240\n" + "> \t=09\n" + "> \tBits 44:47 - Power-Saving Level Limit=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=\n" + "=A0\n" "> \tThis limits the power-saving level that can be entered into.\n" - "> \t\t\n" - "> \tBits 60:63 - Requested Level\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\n" + "> \t=09\n" + "> \tBits 60:63 - Requested Level=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0\n" "> \tUsed to specify which power-saving level must be entered on\n" "> \texecuting stop instruction\n" - "> \t\t\n" + "> \t=09\n" "> Stop idle states and their properties like name, latency, target\n" "> residency, psscr value are exposed via device tree.\n" - "> \n" + ">=20\n" "> This patch series adds support for this new mechanism.\n" - "> \n" + ">=20\n" "> Patches 1-6 are cleanups and code movement.\n" "> Patch 7 adds platform specific support for stop and psscr handling.\n" "> Patch 8 and 9 are minor cleanup in cpuidle driver.\n" "> Patch 10 adds cpuidle driver support.\n" "> Patch 11 makes offlined cpu use deepest stop state.\n" - "> \n" + ">=20\n" "> Note: Documentation for the device tree bindings is posted here-\n" "> http://patchwork.ozlabs.org/patch/629125/\n" - "> \n" + ">=20\n" "> Changes in v7\n" - "> =============\n" - "> \302\240- File renamed to idle_book3s.S instead of idle_power_common.S\n" - "> \302\240- Comment changes\n" - "> \302\240- power_stop0, power_stop renamed to power9_idle and power_idle_stop\n" - "> \302\240- PSSCR template is now a macro instead of storing in paca\n" - "> \302\240- power9_idle in C file instead of assembly\n" - "> \302\240- Fixed TOC related bug\n" - "> \302\240- Handling subcore within FTR section\n" - "> \302\240- Functions in idle.c reordered and broken into multiple functions\n" - "> \302\240- calling __restore_cpu_power8/9 via cur_cpu_spec->cpu_restore\302\240\n" - "> \302\240- Added a minor patch with minor cleanups in cpuidle-powernv.c . This\n" - "> \302\240\302\240\302\240was mainly to make the existing code consistent with the review\n" - "> \302\240\302\240\302\240comments for new code\n" - "> \302\240- Using stack for variables while probing for idle states instead of\n" - "> \302\240\302\240\302\240kzalloc/kcalloc\n" - "> \n" + "> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" + "> =C2=A0- File renamed to idle_book3s.S instead of idle_power_common.S\n" + "> =C2=A0- Comment changes\n" + "> =C2=A0- power_stop0, power_stop renamed to power9_idle and power_idle_sto=\n" + "p\n" + "> =C2=A0- PSSCR template is now a macro instead of storing in paca\n" + "> =C2=A0- power9_idle in C file instead of assembly\n" + "> =C2=A0- Fixed TOC related bug\n" + "> =C2=A0- Handling subcore within FTR section\n" + "> =C2=A0- Functions in idle.c reordered and broken into multiple functions\n" + "> =C2=A0- calling __restore_cpu_power8/9 via cur_cpu_spec->cpu_restore=C2=\n" + "=A0\n" + "> =C2=A0- Added a minor patch with minor cleanups in cpuidle-powernv.c . Th=\n" + "is\n" + "> =C2=A0=C2=A0=C2=A0was mainly to make the existing code consistent with th=\n" + "e review\n" + "> =C2=A0=C2=A0=C2=A0comments for new code\n" + "> =C2=A0- Using stack for variables while probing for idle states instead o=\n" + "f\n" + "> =C2=A0=C2=A0=C2=A0kzalloc/kcalloc\n" + ">=20\n" "> Changes in v6\n" - "> =============\n" - "> \302\240- Restore new POWER ISA v3 SPRS when waking up from deep idle\n" - "> \n" + "> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" + "> =C2=A0- Restore new POWER ISA v3 SPRS when waking up from deep idle\n" + ">=20\n" "> Changes in v5\n" - "> =============\n" - "> \302\240- Use generic cpuidle constant CPUIDLE_NAME_LEN\n" - "> \302\240- Fix return code handling for of_property_read_string_array\n" - "> \302\240- Use DT flags to determine if are using stop instruction, instead of\n" - "> \302\240\302\240\302\240cpu_has_feature\n" - "> \302\240- Removed uncessary cast with names\n" - "> \302\240- &stop_loop -> stop_loop\n" - "> \302\240- Added POWERNV_THRESHOLD_LATENCY_NS to filter out idle states with high latency\n" - "> \n" + "> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" + "> =C2=A0- Use generic cpuidle constant CPUIDLE_NAME_LEN\n" + "> =C2=A0- Fix return code handling for of_property_read_string_array\n" + "> =C2=A0- Use DT flags to determine if are using stop instruction, instead =\n" + "of\n" + "> =C2=A0=C2=A0=C2=A0cpu_has_feature\n" + "> =C2=A0- Removed uncessary cast with names\n" + "> =C2=A0- &stop_loop -> stop_loop\n" + "> =C2=A0- Added POWERNV_THRESHOLD_LATENCY_NS to filter out idle states with=\n" + " high latency\n" + ">=20\n" "> Changes in v4\n" - "> =============\n" - "> \302\240- Added a patch to use PNV_THREAD_WINKLE macro while requesting for winkle\n" - "> \302\240- Moved power7_powersave_common rename to more appropriate patch\n" - "> \302\240- renaming power7_enter_nap_mode to pnv_enter_arch207_idle_mode\n" - "> \302\240- Added PSSCR layout to Patch 7's commit message\n" - "> \302\240- Improved / Fixed comments\n" - "> \302\240- Fixed whitespace error in paca.h\n" - "> \302\240- Using MAX_POSSIBLE_STOP_STATE macro instead of hardcoding 0xF has\n" - "> \302\240\302\240\302\240max possible stop state\n" - "> \n" + "> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" + "> =C2=A0- Added a patch to use PNV_THREAD_WINKLE macro while requesting for=\n" + " winkle\n" + "> =C2=A0- Moved power7_powersave_common rename to more appropriate patch\n" + "> =C2=A0- renaming power7_enter_nap_mode to pnv_enter_arch207_idle_mode\n" + "> =C2=A0- Added PSSCR layout to Patch 7's commit message\n" + "> =C2=A0- Improved / Fixed comments\n" + "> =C2=A0- Fixed whitespace error in paca.h\n" + "> =C2=A0- Using MAX_POSSIBLE_STOP_STATE macro instead of hardcoding 0xF has\n" + "> =C2=A0=C2=A0=C2=A0max possible stop state\n" + ">=20\n" "> Changes in v3\n" - "> =============\n" - "> \302\240- Rebased on powerpc-next\n" - "> \302\240- Dropping patch 1 since we are not adding a new file for P9 idle support\n" - "> \302\240- Improved comments in multiple places\n" - "> \302\240- Moved GET_PACA from power7_restore_hyp_resource to System Reset\n" - "> \302\240- Instead of moving few functions from idle_power7 to idle_power_common,\n" - "> \302\240\302\240\302\240renaming idle_power7.S to idle_power_common.S\n" - "> \302\240- Moved HSTATE_HWTHREAD_STATE updation to power_powersave_common\n" - "> \302\240- Dropped earlier patch 5 which moved few macros from idle_power_common to\n" - "> \302\240\302\240\302\240asm/cpuidle.h.\302\240\n" - "> \302\240- Added a patch to rename reusable power7_* idle functions to pnv_*\n" - "> \302\240- Added new patch that creates abstraction for saving SPRs before\n" - "> \302\240\302\240\302\240entering deep idle states\n" - "> \302\240- Instead of introducing new file idle_power_stop.S, P9 idle support\n" - "> \302\240\302\240\302\240is added to idle_power_common.S using CPU_FTR sections.\n" - "> \302\240- Fixed r4 reg clobbering in power_stop0\n" - "> \n" + "> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" + "> =C2=A0- Rebased on powerpc-next\n" + "> =C2=A0- Dropping patch 1 since we are not adding a new file for P9 idle s=\n" + "upport\n" + "> =C2=A0- Improved comments in multiple places\n" + "> =C2=A0- Moved GET_PACA from power7_restore_hyp_resource to System Reset\n" + "> =C2=A0- Instead of moving few functions from idle_power7 to idle_power_co=\n" + "mmon,\n" + "> =C2=A0=C2=A0=C2=A0renaming idle_power7.S to idle_power_common.S\n" + "> =C2=A0- Moved HSTATE_HWTHREAD_STATE updation to power_powersave_common\n" + "> =C2=A0- Dropped earlier patch 5 which moved few macros from idle_power_co=\n" + "mmon to\n" + "> =C2=A0=C2=A0=C2=A0asm/cpuidle.h.=C2=A0\n" + "> =C2=A0- Added a patch to rename reusable power7_* idle functions to pnv_*\n" + "> =C2=A0- Added new patch that creates abstraction for saving SPRs before\n" + "> =C2=A0=C2=A0=C2=A0entering deep idle states\n" + "> =C2=A0- Instead of introducing new file idle_power_stop.S, P9 idle suppor=\n" + "t\n" + "> =C2=A0=C2=A0=C2=A0is added to idle_power_common.S using CPU_FTR sections.\n" + "> =C2=A0- Fixed r4 reg clobbering in power_stop0\n" + ">=20\n" "> Changes in v2\n" - "> =============\n" - "> \302\240- Rebased on v4.6-rc6\n" - "> \302\240- Using CPU_FTR_ARCH_300 bit instead of CPU_FTR_STOP_INST\n" - "> \n" + "> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D\n" + "> =C2=A0- Rebased on v4.6-rc6\n" + "> =C2=A0- Using CPU_FTR_ARCH_300 bit instead of CPU_FTR_STOP_INST\n" + ">=20\n" "> Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>\n" "> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>\n" "> Cc: linux-pm@vger.kernel.org\n" @@ -136,42 +154,58 @@ "> Cc: linuxppc-dev@lists.ozlabs.org\n" "> Cc: Rob Herring <robh+dt@kernel.org>\n" "> Cc: Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>\n" - "> \n" + ">=20\n" "> Shreyas B. Prabhu (11):\n" - "> \302\240 powerpc/powernv: Use PNV_THREAD_WINKLE macro while requesting for\n" - "> \302\240\302\240\302\240\302\240winkle\n" - "> \302\240 powerpc/kvm: make hypervisor state restore a function\n" - "> \302\240 powerpc/powernv: Rename idle_power7.S to idle_book3s.S\n" - "> \302\240 powerpc/powernv: Rename reusable idle functions to hardware agnostic\n" - "> \302\240\302\240\302\240\302\240names\n" - "> \302\240 powerpc/powernv: Make pnv_powersave_common more generic\n" - "> \302\240 powerpc/powernv: abstraction for saving SPRs before entering deep idle\n" - "> \302\240\302\240\302\240\302\240states\n" - "> \302\240 powerpc/powernv: Add platform support for stop instruction\n" - "> \302\240 cpuidle/powernv: Use CPUIDLE_STATE_MAX instead of\n" - "> \302\240\302\240\302\240\302\240MAX_POWERNV_IDLE_STATES\n" - "> \302\240 cpuidle/powernv: cleanup powernv_add_idle_states\n" - "> \302\240 cpuidle/powernv: Add support for POWER ISA v3 idle states\n" - "> \302\240 powerpc/powernv: Use deepest stop state when cpu is offlined\n" - "> \n" - "> \302\240arch/powerpc/include/asm/cpuidle.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2402 +\n" - "> \302\240arch/powerpc/include/asm/kvm_book3s_asm.h |\302\240\302\240\302\2402 +-\n" - "> \302\240arch/powerpc/include/asm/opal-api.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\24011 +-\n" - "> \302\240arch/powerpc/include/asm/ppc-opcode.h\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2404 +\n" - "> \302\240arch/powerpc/include/asm/processor.h\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2402 +\n" - "> \302\240arch/powerpc/include/asm/reg.h\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\24010 +\n" - "> \302\240arch/powerpc/kernel/Makefile\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2402 +-\n" - "> \302\240arch/powerpc/kernel/exceptions-64s.S\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\24030 +-\n" - "> \302\240arch/powerpc/kernel/idle_book3s.S\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 664 ++++++++++++++++++++++++++++++\n" - "> \302\240arch/powerpc/kernel/idle_power7.S\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240| 515 -----------------------\n" - "> \302\240arch/powerpc/kvm/book3s_hv_rmhandlers.S\302\240\302\240\302\240|\302\240\302\240\302\2404 +-\n" - "> \302\240arch/powerpc/platforms/powernv/idle.c\302\240\302\240\302\240\302\240\302\240| 185 +++++++--\n" - "> \302\240arch/powerpc/platforms/powernv/powernv.h\302\240\302\240|\302\240\302\240\302\2401 +\n" - "> \302\240arch/powerpc/platforms/powernv/smp.c\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\240\302\2404 +-\n" - "> \302\240drivers/cpuidle/cpuidle-powernv.c\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240|\302\240\302\24099 ++++-\n" - "> \302\24015 files changed, 940 insertions(+), 595 deletions(-)\n" - "> \302\240create mode 100644 arch/powerpc/kernel/idle_book3s.S\n" - "> \302\240delete mode 100644 arch/powerpc/kernel/idle_power7.S\n" - > + "> =C2=A0 powerpc/powernv: Use PNV_THREAD_WINKLE macro while requesting for\n" + "> =C2=A0=C2=A0=C2=A0=C2=A0winkle\n" + "> =C2=A0 powerpc/kvm: make hypervisor state restore a function\n" + "> =C2=A0 powerpc/powernv: Rename idle_power7.S to idle_book3s.S\n" + "> =C2=A0 powerpc/powernv: Rename reusable idle functions to hardware agnost=\n" + "ic\n" + "> =C2=A0=C2=A0=C2=A0=C2=A0names\n" + "> =C2=A0 powerpc/powernv: Make pnv_powersave_common more generic\n" + "> =C2=A0 powerpc/powernv: abstraction for saving SPRs before entering deep =\n" + "idle\n" + "> =C2=A0=C2=A0=C2=A0=C2=A0states\n" + "> =C2=A0 powerpc/powernv: Add platform support for stop instruction\n" + "> =C2=A0 cpuidle/powernv: Use CPUIDLE_STATE_MAX instead of\n" + "> =C2=A0=C2=A0=C2=A0=C2=A0MAX_POWERNV_IDLE_STATES\n" + "> =C2=A0 cpuidle/powernv: cleanup powernv_add_idle_states\n" + "> =C2=A0 cpuidle/powernv: Add support for POWER ISA v3 idle states\n" + "> =C2=A0 powerpc/powernv: Use deepest stop state when cpu is offlined\n" + ">=20\n" + "> =C2=A0arch/powerpc/include/asm/cpuidle.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=\n" + "=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A02 +\n" + "> =C2=A0arch/powerpc/include/asm/kvm_book3s_asm.h |=C2=A0=C2=A0=C2=A02 +-\n" + "> =C2=A0arch/powerpc/include/asm/opal-api.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0=C2=A0|=C2=A0=C2=A011 +-\n" + "> =C2=A0arch/powerpc/include/asm/ppc-opcode.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "|=C2=A0=C2=A0=C2=A04 +\n" + "> =C2=A0arch/powerpc/include/asm/processor.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0|=C2=A0=C2=A0=C2=A02 +\n" + "> =C2=A0arch/powerpc/include/asm/reg.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A010 +\n" + "> =C2=A0arch/powerpc/kernel/Makefile=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=\n" + "=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A02 +-\n" + "> =C2=A0arch/powerpc/kernel/exceptions-64s.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0|=C2=A0=C2=A030 +-\n" + "> =C2=A0arch/powerpc/kernel/idle_book3s.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=\n" + "=A0=C2=A0=C2=A0=C2=A0| 664 ++++++++++++++++++++++++++++++\n" + "> =C2=A0arch/powerpc/kernel/idle_power7.S=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=\n" + "=A0=C2=A0=C2=A0=C2=A0| 515 -----------------------\n" + "> =C2=A0arch/powerpc/kvm/book3s_hv_rmhandlers.S=C2=A0=C2=A0=C2=A0|=C2=A0=C2=\n" + "=A0=C2=A04 +-\n" + "> =C2=A0arch/powerpc/platforms/powernv/idle.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "| 185 +++++++--\n" + "> =C2=A0arch/powerpc/platforms/powernv/powernv.h=C2=A0=C2=A0|=C2=A0=C2=A0=\n" + "=C2=A01 +\n" + "> =C2=A0arch/powerpc/platforms/powernv/smp.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=\n" + "=C2=A0|=C2=A0=C2=A0=C2=A04 +-\n" + "> =C2=A0drivers/cpuidle/cpuidle-powernv.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=\n" + "=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A099 ++++-\n" + "> =C2=A015 files changed, 940 insertions(+), 595 deletions(-)\n" + "> =C2=A0create mode 100644 arch/powerpc/kernel/idle_book3s.S\n" + "> =C2=A0delete mode 100644 arch/powerpc/kernel/idle_power7.S\n" + >=20 -b95785cec2d4166f2a45ac90128b0ace15076e3a1aba487db50d83775792d34a +0f0d936eb531d8d380a4720ed8298cd003cf83d24c7f908c62bff667bd6eb6bd
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.