Skip to content

Commit 64b40ff

Browse files
dgibsonmpe
authored andcommitted
powerpc/pseries: Add hypercall wrappers for hash page table resizing
This adds the hypercall numbers and wrapper functions for the hash page table resizing hypercalls. These hypercall numbers are defined in the PAPR ACR "HPT resizing option". It also adds a new firmware feature flag to track the presence of the HPT resizing calls. Signed-off-by: David Gibson <[email protected]> Reviewed-by: Paul Mackerras <[email protected]> Signed-off-by: Michael Ellerman <[email protected]>
1 parent de55ce0 commit 64b40ff

File tree

4 files changed

+18
-2
lines changed

4 files changed

+18
-2
lines changed

arch/powerpc/include/asm/firmware.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
#define FW_FEATURE_SPLPAR ASM_CONST(0x0000000000100000)
4343
#define FW_FEATURE_LPAR ASM_CONST(0x0000000000400000)
4444
#define FW_FEATURE_PS3_LV1 ASM_CONST(0x0000000000800000)
45-
/* Free ASM_CONST(0x0000000001000000) */
45+
#define FW_FEATURE_HPT_RESIZE ASM_CONST(0x0000000001000000)
4646
#define FW_FEATURE_CMO ASM_CONST(0x0000000002000000)
4747
#define FW_FEATURE_VPHN ASM_CONST(0x0000000004000000)
4848
#define FW_FEATURE_XCMO ASM_CONST(0x0000000008000000)
@@ -66,7 +66,8 @@ enum {
6666
FW_FEATURE_MULTITCE | FW_FEATURE_SPLPAR | FW_FEATURE_LPAR |
6767
FW_FEATURE_CMO | FW_FEATURE_VPHN | FW_FEATURE_XCMO |
6868
FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
69-
FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN,
69+
FW_FEATURE_TYPE1_AFFINITY | FW_FEATURE_PRRN |
70+
FW_FEATURE_HPT_RESIZE,
7071
FW_FEATURE_PSERIES_ALWAYS = 0,
7172
FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL,
7273
FW_FEATURE_POWERNV_ALWAYS = 0,

arch/powerpc/include/asm/hvcall.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,8 @@
276276
#define H_GET_MPP_X 0x314
277277
#define H_SET_MODE 0x31C
278278
#define H_CLEAR_HPT 0x358
279+
#define H_RESIZE_HPT_PREPARE 0x36C
280+
#define H_RESIZE_HPT_COMMIT 0x370
279281
#define H_SIGNAL_SYS_RESET 0x380
280282
#define MAX_HCALL_OPCODE H_SIGNAL_SYS_RESET
281283

arch/powerpc/include/asm/plpar_wrappers.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,18 @@ static inline long plpar_pte_protect(unsigned long flags, unsigned long ptex,
210210
return plpar_hcall_norets(H_PROTECT, flags, ptex, avpn);
211211
}
212212

213+
static inline long plpar_resize_hpt_prepare(unsigned long flags,
214+
unsigned long shift)
215+
{
216+
return plpar_hcall_norets(H_RESIZE_HPT_PREPARE, flags, shift);
217+
}
218+
219+
static inline long plpar_resize_hpt_commit(unsigned long flags,
220+
unsigned long shift)
221+
{
222+
return plpar_hcall_norets(H_RESIZE_HPT_COMMIT, flags, shift);
223+
}
224+
213225
static inline long plpar_tce_get(unsigned long liobn, unsigned long ioba,
214226
unsigned long *tce_ret)
215227
{

arch/powerpc/platforms/pseries/firmware.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ hypertas_fw_features_table[] = {
6464
{FW_FEATURE_VPHN, "hcall-vphn"},
6565
{FW_FEATURE_SET_MODE, "hcall-set-mode"},
6666
{FW_FEATURE_BEST_ENERGY, "hcall-best-energy-1*"},
67+
{FW_FEATURE_HPT_RESIZE, "hcall-hpt-resize"},
6768
};
6869

6970
/* Build up the firmware features bitmask using the contents of

0 commit comments

Comments
 (0)