mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
powerpc/perf: Power11 Performance Monitoring support
Base enablement patch to register performance monitoring hardware support for Power11. Most of fields are copied from power10_pmu struct for power11_pmu struct. Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/20240221044623.1598642-2-mpe@ellerman.id.au
This commit is contained in:
parent
c2ed087ed3
commit
b22ea62722
3 changed files with 30 additions and 0 deletions
|
@ -2593,6 +2593,8 @@ static int __init init_ppc64_pmu(void)
|
|||
return 0;
|
||||
else if (!init_power10_pmu())
|
||||
return 0;
|
||||
else if (!init_power11_pmu())
|
||||
return 0;
|
||||
else if (!init_ppc970_pmu())
|
||||
return 0;
|
||||
else
|
||||
|
|
|
@ -10,4 +10,5 @@ int __init init_power7_pmu(void);
|
|||
int __init init_power8_pmu(void);
|
||||
int __init init_power9_pmu(void);
|
||||
int __init init_power10_pmu(void);
|
||||
int __init init_power11_pmu(void);
|
||||
int __init init_generic_compat_pmu(void);
|
||||
|
|
|
@ -634,3 +634,30 @@ int __init init_power10_pmu(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct power_pmu power11_pmu;
|
||||
|
||||
int __init init_power11_pmu(void)
|
||||
{
|
||||
unsigned int pvr;
|
||||
int rc;
|
||||
|
||||
pvr = mfspr(SPRN_PVR);
|
||||
if (PVR_VER(pvr) != PVR_POWER11)
|
||||
return -ENODEV;
|
||||
|
||||
/* Set the PERF_REG_EXTENDED_MASK here */
|
||||
PERF_REG_EXTENDED_MASK = PERF_REG_PMU_MASK_31;
|
||||
|
||||
power11_pmu = power10_pmu;
|
||||
power11_pmu.name = "Power11";
|
||||
|
||||
rc = register_power_pmu(&power11_pmu);
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
/* Tell userspace that EBB is supported */
|
||||
cur_cpu_spec->cpu_user_features2 |= PPC_FEATURE2_EBB;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue