powerpc/pseries: Export data from new hcall H_EM_GET_PARMS
Add support for H_EM_GET_PARMS hcall that will return data related to power modes from the platform. Export the data directly to user space for administrative tools to interpret and use. cat /proc/powerpc/lparcfg will export power mode data Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
9c7cc234dc
commit
6fe9d1facb
@ -228,6 +228,7 @@
|
|||||||
#define H_JOIN 0x298
|
#define H_JOIN 0x298
|
||||||
#define H_VASI_STATE 0x2A4
|
#define H_VASI_STATE 0x2A4
|
||||||
#define H_ENABLE_CRQ 0x2B0
|
#define H_ENABLE_CRQ 0x2B0
|
||||||
|
#define H_GET_EM_PARMS 0x2B8
|
||||||
#define H_SET_MPP 0x2D0
|
#define H_SET_MPP 0x2D0
|
||||||
#define H_GET_MPP 0x2D4
|
#define H_GET_MPP 0x2D4
|
||||||
#define MAX_HCALL_OPCODE H_GET_MPP
|
#define MAX_HCALL_OPCODE H_GET_MPP
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
#include <asm/vio.h>
|
#include <asm/vio.h>
|
||||||
#include <asm/mmu.h>
|
#include <asm/mmu.h>
|
||||||
|
|
||||||
#define MODULE_VERS "1.8"
|
#define MODULE_VERS "1.9"
|
||||||
#define MODULE_NAME "lparcfg"
|
#define MODULE_NAME "lparcfg"
|
||||||
|
|
||||||
/* #define LPARCFG_DEBUG */
|
/* #define LPARCFG_DEBUG */
|
||||||
@ -487,6 +487,14 @@ static void splpar_dispatch_data(struct seq_file *m)
|
|||||||
seq_printf(m, "dispatch_dispersions=%lu\n", dispatch_dispersions);
|
seq_printf(m, "dispatch_dispersions=%lu\n", dispatch_dispersions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void parse_em_data(struct seq_file *m)
|
||||||
|
{
|
||||||
|
unsigned long retbuf[PLPAR_HCALL_BUFSIZE];
|
||||||
|
|
||||||
|
if (plpar_hcall(H_GET_EM_PARMS, retbuf) == H_SUCCESS)
|
||||||
|
seq_printf(m, "power_mode_data=%016lx\n", retbuf[0]);
|
||||||
|
}
|
||||||
|
|
||||||
static int pseries_lparcfg_data(struct seq_file *m, void *v)
|
static int pseries_lparcfg_data(struct seq_file *m, void *v)
|
||||||
{
|
{
|
||||||
int partition_potential_processors;
|
int partition_potential_processors;
|
||||||
@ -541,6 +549,8 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v)
|
|||||||
|
|
||||||
seq_printf(m, "slb_size=%d\n", mmu_slb_size);
|
seq_printf(m, "slb_size=%d\n", mmu_slb_size);
|
||||||
|
|
||||||
|
parse_em_data(m);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user