All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Haren Myneni <haren@linux.vnet.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org, mikey@neuling.org,
	paulus@samba.org, anton@samba.org
Subject: Re: [PATCH 5/6] powerpc: Macros for saving/restore PPR
Date: Mon, 10 Sep 2012 14:24:04 +1000	[thread overview]
Message-ID: <1347251044.2385.144.camel@pasglop> (raw)
In-Reply-To: <1347191001.3418.19.camel@hbabu-laptop>

On Sun, 2012-09-09 at 04:43 -0700, Haren Myneni wrote:
> Several macros are defined for saving and restore user defined PPR value.
> 
> Signed-off-by: Haren Myneni <haren@us.ibm.com>
> ---
>  arch/powerpc/include/asm/exception-64s.h |   35 ++++++++++++++++++++++++++++++
>  arch/powerpc/include/asm/reg.h           |    1 +
>  2 files changed, 36 insertions(+)
> 
> diff --git a/arch/powerpc/include/asm/exception-64s.h b/arch/powerpc/include/asm/exception-64s.h
> index bfd3f1f..618fd18 100644
> --- a/arch/powerpc/include/asm/exception-64s.h
> +++ b/arch/powerpc/include/asm/exception-64s.h
> @@ -62,6 +62,41 @@
>  #define EXC_HV	H
>  #define EXC_STD
>  
> +/*
> + * PPR save/restore macros - Used on P7 or later processors
> + */
> +#define SAVE_PPR(area, ra, rb)						\
> +BEGIN_FTR_SECTION_NESTED(940)						\
> +	ld	ra,area+EX_PPR(r13);	/* Read PPR from paca */	\
> +	clrrdi	rb,r1,THREAD_SHIFT;	/* thread_info struct */	\
> +	std	ra,TI_PPR(rb);		/* Save PPR in thread_info */	\
> +END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,940)

Why the thread info and not the thread struct ?

Cheers,
Ben.

> +#define RESTORE_PPR(ra,rb)						\
> +BEGIN_FTR_SECTION_NESTED(941)						\
> +	clrrdi	ra,r1,THREAD_SHIFT;					\
> +	ld	rb,TI_PPR(ra);		/* Read PPR from thread_info */	\
> +	mtspr	SPRN_PPR,rb;		/* Restore PPR */		\
> +END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,941)
> +
> +#define RESTORE_PPR_PACA(area,ra)					\
> +BEGIN_FTR_SECTION_NESTED(942)						\
> +	ld	ra,area+EX_PPR(r13);					\
> +	mtspr	SPRN_PPR,ra;						\
> +END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,942)
> +
> +#define HMT_MEDIUM_NO_PPR						\
> +BEGIN_FTR_SECTION_NESTED(944)						\
> +	HMT_MEDIUM;							\
> +END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,0,944)  /*non P7*/		
> +
> +#define HMT_MEDIUM_HAS_PPR(area, ra)					\
> +BEGIN_FTR_SECTION_NESTED(943)						\
> +	mfspr	ra,SPRN_PPR;						\
> +	std	ra,area+EX_PPR(r13);					\
> +	HMT_MEDIUM;							\
> +END_FTR_SECTION_NESTED(CPU_FTR_HAS_PPR,CPU_FTR_HAS_PPR,943) /* P7 */
> +
>  #define __EXCEPTION_PROLOG_1(area, extra, vec)				\
>  	GET_PACA(r13);							\
>  	std	r9,area+EX_R9(r13);	/* save r9 - r12 */		\
> diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
> index 6386086..dff2f89 100644
> --- a/arch/powerpc/include/asm/reg.h
> +++ b/arch/powerpc/include/asm/reg.h
> @@ -284,6 +284,7 @@
>  #define SPRN_DBAT6U	0x23C	/* Data BAT 6 Upper Register */
>  #define SPRN_DBAT7L	0x23F	/* Data BAT 7 Lower Register */
>  #define SPRN_DBAT7U	0x23E	/* Data BAT 7 Upper Register */
> +#define SPRN_PPR	0x380	/* SMT Thread status Register */
>  
>  #define SPRN_DEC	0x016		/* Decrement Register */
>  #define SPRN_DER	0x095		/* Debug Enable Regsiter */

  reply	other threads:[~2012-09-10  4:30 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-09 11:43 [PATCH 5/6] powerpc: Macros for saving/restore PPR Haren Myneni
2012-09-10  4:24 ` Benjamin Herrenschmidt [this message]
2012-09-11  5:18   ` Haren Myneni
2012-09-11  5:37     ` Benjamin Herrenschmidt
  -- strict thread matches above, loose matches on Subject: below --
2012-10-31  6:56 Haren Myneni
2012-11-23  3:39 ` Michael Neuling
2012-11-27  1:49   ` Haren Myneni
2012-12-11  2:41     ` Michael Ellerman
2012-12-07  7:50 Haren Myneni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1347251044.2385.144.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=anton@samba.org \
    --cc=haren@linux.vnet.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mikey@neuling.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.