On 06/17/2013 12:54:32 AM, Wang Dongsheng-B40534 wrote:
> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Friday, June 14, 2013 12:51 AM
> To: Wang Dongsheng-B40534
> Cc: Wood Scott-B07421; b...@kernel.crashing.org;
> johan...@sipsolutions.net; an...@enomsg.org;
ga...@kernel.crashing.org;
> linuxppc-dev@lists.ozlabs.org
> Subject: Re: [PATCH 1/2] powerpc: add Book E support to 64-bit
> hibernation
>
> On 06/13/2013 04:55:43 AM, Wang Dongsheng-B40534 wrote:
> > > > +#else
> > > > + /* Save SPRGs */
> > > > + RESTORE_SPRG(0)
> > > > + RESTORE_SPRG(1)
> > > > + RESTORE_SPRG(2)
> > > > + RESTORE_SPRG(3)
> > > > + RESTORE_SPRG(4)
> > > > + RESTORE_SPRG(5)
> > > > + RESTORE_SPRG(6)
> > > > + RESTORE_SPRG(7)
> > >
> > > Why do we need this on book3e and not on book3s?
> > >
> > Book3e: SPRG1 used save paca, SPRG2 be defined
> > SPRN_SPRG_TLB_EXFRAME,...
> > I think those register should be save, even now some SPRG
register not
> > be use.
>
> Are those expected/allowed to change as a result of the restore?
>
Those registers are used by software, some allowed to change.
Exception handling is used in some registers, see exception-64e.h
These registers can be modified and saved.
I really doubt the exception scratch registers need to be saved --
we're not trying to restore into the middle of an exception
prolog/epilog.
book3s has the PACA as well and they don't save it. Don't we rely on
things like boot-time memory allocations happening in the same place
when we resume? extlb is part of the PACA, so the same applies.
Granted, this isn't performance critical so it may seem better to
save/restore just in case, but there's value in not unnecessarily
deviating from what book3s does.
-Scott
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev