Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1622883
| From | Michael Ellerman <mpe@ellerman.id.au> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop |
| Date | 2017-04-13 12:10 +0200 |
| Message-ID | <tvJRo-1sn-19@gated-at.bofh.it> (permalink) |
| References | (1 earlier) <tvoWC-3Wi-9@gated-at.bofh.it> <tvEeZ-5SJ-3@gated-at.bofh.it> <tvEoF-5Wg-3@gated-at.bofh.it> <tvGqt-7kR-3@gated-at.bofh.it> <tvHcR-7Xz-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Nicholas Piggin <npiggin@gmail.com> writes: > On Thu, 13 Apr 2017 16:27:34 +1000 > Michael Neuling <mikey@neuling.org> wrote: > >> On Thu, 2017-04-13 at 14:12 +1000, Benjamin Herrenschmidt wrote: >> > On Thu, 2017-04-13 at 09:28 +0530, Aneesh Kumar K.V wrote: >> > > > #endif >> > > > mtctr r12 >> > > > bctrl >> > > > +/* >> > > > + * cur_cpu_spec->cpu_restore would restore LPCR to a >> > > > + * sane value that is set at early boot time, >> > > > + * thereby clearing LPCR_UPRT. >> > > > + * LPCR_UPRT is required if we are running in Radix mode. >> > > > + * Set it here if that be the case. >> > > > + */ >> > > > +BEGIN_MMU_FTR_SECTION >> > > > + mfspr r3, SPRN_LPCR >> > > > + LOAD_REG_IMMEDIATE(r4, LPCR_UPRT) >> > > > + or r3, r3, r4 >> > > > + mtspr SPRN_LPCR, r3 >> > > > +END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_RADIX) >> > >> > We are probably better off saving the value somewhere during boot >> > and just "blasting" it whole back. >> >> We seem to touch LPCR in a bunch of places these days. Not sure when "sometimes >> during boot" should actually be. > > In the short term, what if we just save LPCR and restore it after calling > cpu_restore? As you say there are a lot of things that touch LPCR we're > not catching here. Yeah can we save it on the way down and restore that value on the way back up? The real problem here is that cpu_restore() does not "restore" anything, it programs a set of fixed values. We should probably rework it so that it actually does a save/restore to avoid more bugs like this. cheers
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop "Gautham R. Shenoy" <ego@linux.vnet.ibm.com> - 2017-04-12 13:50 +0200
Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> - 2017-04-13 06:10 +0200
Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop Benjamin Herrenschmidt <benh@kernel.crashing.org> - 2017-04-13 06:20 +0200
Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop Michael Neuling <mikey@neuling.org> - 2017-04-13 08:30 +0200
Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop Nicholas Piggin <npiggin@gmail.com> - 2017-04-13 09:20 +0200
Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop Michael Ellerman <mpe@ellerman.id.au> - 2017-04-13 12:10 +0200
Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop Gautham R Shenoy <ego@linux.vnet.ibm.com> - 2017-04-13 14:00 +0200
Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop Nicholas Piggin <npiggin@gmail.com> - 2017-04-13 14:10 +0200
csiph-web