Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1622961

Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop

From Nicholas Piggin <npiggin@gmail.com>
Newsgroups linux.kernel
Subject Re: [PATCH 3/3] powernv:idle: Set LPCR_UPRT on wakeup from deep-stop
Date 2017-04-13 14:10 +0200
Message-ID <tvLJw-2Oy-9@gated-at.bofh.it> (permalink)
References (2 earlier) <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> <tvLzP-2vl-9@gated-at.bofh.it>
Organization IBM

Show all headers | View raw


On Thu, 13 Apr 2017 17:24:34 +0530
Gautham R Shenoy <ego@linux.vnet.ibm.com> wrote:

> On Thu, Apr 13, 2017 at 05:18:17PM +1000, Nicholas Piggin wrote:
> > 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.  
> 
> In that case can we skip calling cpu_restore in the idle_exit path
> altogether and simply restore LPCR to the value that the thread had
> before executing stop ?

Good question. For a minimal fix I would keep calling cpu_restore. I'd
like to get rid of it if we can though, but that might take a bit more
work.

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


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