Subject: Re: [RFCv2 6/9] pseries: Add hypercall wrappers for hash page table resizing

From: David Gibson <[email-masked]>
Date: Mon, 8 Feb 2016 08:33:38 +1000

On Thu, Feb 04, 2016 at 04:41:10PM +0530, Anshuman Khandual wrote:
> On 02/02/2016 06:28 AM, David Gibson wrote:
> > On Mon, Feb 01, 2016 at 12:41:31PM +0530, Anshuman Khandual wrote:
> >> On 01/29/2016 10:54 AM, David Gibson wrote:
> >>> This adds the hypercall numbers and wrapper functions for the hash page
> >>> table resizing hypercalls.
> >>>
> >>> These are experimental "platform specific" values for now, until we have a
> >>> formal PAPR update.
> >>>
> >>> It also adds a new firmware feature flat to track the presence of the
> >>> HPT resizing calls.
> >>
> >> Its a flag   ....................... ^^^^^^^ here.
> > 
> > Oops, thanks.
> > 
> >>
> >>>
> >>> Signed-off-by: David Gibson <[email-masked]>
> >>> ---
> >>>  arch/powerpc/include/asm/firmware.h       |  5 +++--
> >>>  arch/powerpc/include/asm/hvcall.h         |  2 ++
> >>>  arch/powerpc/include/asm/plpar_wrappers.h | 12 ++++++++++++
> >>>  arch/powerpc/platforms/pseries/firmware.c |  1 +
> >>>  4 files changed, 18 insertions(+), 2 deletions(-)
> >>>
> >>> diff --git a/arch/powerpc/include/asm/firmware.h b/arch/powerpc/include/asm/firmware.h
> >>> index b062924..32435d2 100644
> >>> --- a/arch/powerpc/include/asm/firmware.h
> >>> +++ b/arch/powerpc/include/asm/firmware.h
> >>> @@ -42,7 +42,7 @@
> >>>  #define FW_FEATURE_SPLPAR	ASM_CONST(0x0000000000100000)
> >>>  #define FW_FEATURE_LPAR		ASM_CONST(0x0000000000400000)
> >>>  #define FW_FEATURE_PS3_LV1	ASM_CONST(0x0000000000800000)
> >>> -/* Free				ASM_CONST(0x0000000001000000) */
> >>> +#define FW_FEATURE_HPT_RESIZE	ASM_CONST(0x0000000001000000)
> >>>  #define FW_FEATURE_CMO		ASM_CONST(0x0000000002000000)
> >>>  #define FW_FEATURE_VPHN		ASM_CONST(0x0000000004000000)
> >>>  #define FW_FEATURE_XCMO		ASM_CONST(0x0000000008000000)
> >>> @@ -66,7 +66,8 @@ enum {
> >>>  		FW_FEATURE_MULTITCE | FW_FEATURE_SPLPAR | FW_FEATURE_LPAR |
> >>>  		FW_FEATURE_CMO | FW_FEATURE_VPHN | FW_FEATURE_XCMO |
> >>>  		FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
> >>> -		FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN,
> >>> +		FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN |
> >>> +		FW_FEATURE_HPT_RESIZE,
> >>>  	FW_FEATURE_PSERIES_ALWAYS = 0,
> >>>  	FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL,
> >>>  	FW_FEATURE_POWERNV_ALWAYS = 0,
> >>> diff --git a/arch/powerpc/include/asm/hvcall.h b/arch/powerpc/include/asm/hvcall.h
> >>> index e3b54dd..195e080 100644
> >>> --- a/arch/powerpc/include/asm/hvcall.h
> >>> +++ b/arch/powerpc/include/asm/hvcall.h
> >>> @@ -293,6 +293,8 @@
> >>>  
> >>>  /* Platform specific hcalls, used by KVM */
> >>>  #define H_RTAS			0xf000
> >>> +#define H_RESIZE_HPT_PREPARE	0xf003
> >>> +#define H_RESIZE_HPT_COMMIT	0xf004
> >>
> >> This sound better and matches FW_FEATURE_HPT_RESIZE ?
> > 
> > I'm not quite sure what you're suggesting here.
> > 
> >> #define H_HPT_RESIZE_PREPARE	0xf003
> >> #define H_HPT_RESIZE_COMMIT	0xf004
> 
> Just little bit of change of name of the macro like this
> 
> 
> H_RESIZE_HPT_PREPARE -->  H_HPT_RESIZE_PREPARE
> H_RESIZE_HPT_COMMIT -->  H_HPT_RESIZE_COMMIT

Oh, I see.  Actually, I'm trying to standardize on "resize hpt" rather
than "hpt resize" everywhere.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson