Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1683341
| From | Gautham R Shenoy <ego@linux.vnet.ibm.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails. |
| Date | 2017-07-07 19:40 +0200 |
| Message-ID | <u0Fot-7c6-13@gated-at.bofh.it> (permalink) |
| References | <tZVvk-dV-7@gated-at.bofh.it> <tZVvl-dV-35@gated-at.bofh.it> <u0gT8-6UV-19@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Fri, Jul 07, 2017 at 01:29:16AM +1000, Nicholas Piggin wrote: > On Wed, 5 Jul 2017 22:08:16 +0530 > "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> wrote: > > > From: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> > > > > Currently, we use the opal call opal_slw_set_reg() to inform the that > > the Sleep-Winkle Engine (SLW) to restore the contents of some of the > > Hypervisor state on wakeup from deep idle states that lose full > > hypervisor context (characterized by the flag > > OPAL_PM_LOSE_FULL_CONTEXT). > > > > However, the current code has a bug in that if opal_slw_set_reg() > > fails, we don't disable the use of these deep states (winkle on > > POWER8, stop4 onwards on POWER9). > > > > This patch fixes this bug by ensuring that if the the sleep winkle > > engine is unable to restore the hypervisor states in > > pnv_save_sprs_for_deep_states(), then we mark as invalid the states > > which lose full context. > > > > As a side-effect, since supported_cpuidle_states in > > pnv_probe_idle_states() consists of flags of only the valid states, > > this patch will ensure that no other subsystem in the kernel can use > > the states which lose full context on stop-api failures. > > Looks good. Is there something minimal we can do for stable here? > > Aside question, do we need to restore LPCR at all with the SLW engine? > It gets set up again when by the idle wakeup code. > > And does POWER9 really need MSR and PSSCR restored by SLW? (going a bit > off topic here, I'm just curious) MSR is needed to be restored so that we wakeup with the right endianness and with the IR,DR disabled. PSSCR is set to a value so that in case of a special wakeup for a deep-stop, the SLW can program the core to go back to the stop level provided by the PSSCR value via the stop-api. > > Thanks, > Nick > -- Thanks and Regards gautham.
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 0/5] powernv:idle: Cleanup idle states initialization "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> - 2017-07-05 18:40 +0200
[PATCH 3/5] powernv:idle: Define idle init function for power8 "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> - 2017-07-05 18:40 +0200
Re: [PATCH 3/5] powernv:idle: Define idle init function for power8 Nicholas Piggin <npiggin@gmail.com> - 2017-07-06 17:10 +0200
Re: [PATCH 3/5] powernv:idle: Define idle init function for power8 Gautham R Shenoy <ego@linux.vnet.ibm.com> - 2017-07-07 14:50 +0200
[PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails. "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> - 2017-07-05 18:40 +0200
Re: [PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails. Nicholas Piggin <npiggin@gmail.com> - 2017-07-06 17:30 +0200
Re: [PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails. Gautham R Shenoy <ego@linux.vnet.ibm.com> - 2017-07-07 19:40 +0200
Re: [PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails. Nicholas Piggin <npiggin@gmail.com> - 2017-07-08 11:10 +0200
Re: [PATCH 5/5] powernv:idle: Disable LOSE_FULL_CONTEXT states when stop-api fails. Gautham R Shenoy <ego@linux.vnet.ibm.com> - 2017-07-11 07:10 +0200
[PATCH 2/5] powernv:idle: Change return type of pnv_probe_idle_states to int "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> - 2017-07-05 18:40 +0200
Re: [PATCH 2/5] powernv:idle: Change return type of pnv_probe_idle_states to int Nicholas Piggin <npiggin@gmail.com> - 2017-07-06 17:10 +0200
Re: [PATCH 2/5] powernv:idle: Change return type of pnv_probe_idle_states to int Gautham R Shenoy <ego@linux.vnet.ibm.com> - 2017-07-07 14:40 +0200
[PATCH 1/5] powernv:idle: Move device-tree parsing to one place. "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> - 2017-07-05 18:40 +0200
Re: [PATCH 1/5] powernv:idle: Move device-tree parsing to one place. Nicholas Piggin <npiggin@gmail.com> - 2017-07-06 17:00 +0200
Re: [PATCH 1/5] powernv:idle: Move device-tree parsing to one place. Gautham R Shenoy <ego@linux.vnet.ibm.com> - 2017-07-07 13:30 +0200
Re: [PATCH 1/5] powernv:idle: Move device-tree parsing to one place. Nicholas Piggin <npiggin@gmail.com> - 2017-07-08 10:50 +0200
[PATCH 4/5] powernv:idle: Move initialization of sibling pacas to pnv_alloc_idle_core_states "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> - 2017-07-05 18:40 +0200
Re: [PATCH 4/5] powernv:idle: Move initialization of sibling pacas to pnv_alloc_idle_core_states Nicholas Piggin <npiggin@gmail.com> - 2017-07-06 17:20 +0200
Re: [PATCH 4/5] powernv:idle: Move initialization of sibling pacas to pnv_alloc_idle_core_states Gautham R Shenoy <ego@linux.vnet.ibm.com> - 2017-07-07 17:10 +0200
Re: [PATCH 4/5] powernv:idle: Move initialization of sibling pacas to pnv_alloc_idle_core_states Nicholas Piggin <npiggin@gmail.com> - 2017-07-08 11:10 +0200
Re: [PATCH 4/5] powernv:idle: Move initialization of sibling pacas to pnv_alloc_idle_core_states Michael Ellerman <mpe@ellerman.id.au> - 2017-07-10 06:40 +0200
csiph-web