diff options
| -rw-r--r-- | arch/powerpc/include/uapi/asm/perf_regs.h | 1 | ||||
| -rw-r--r-- | arch/powerpc/perf/perf_regs.c | 6 | ||||
| -rw-r--r-- | tools/arch/powerpc/include/uapi/asm/perf_regs.h | 1 | ||||
| -rw-r--r-- | tools/perf/arch/powerpc/include/perf_regs.h | 3 | ||||
| -rw-r--r-- | tools/perf/arch/powerpc/util/perf_regs.c | 1 |
5 files changed, 11 insertions, 1 deletions
diff --git a/arch/powerpc/include/uapi/asm/perf_regs.h b/arch/powerpc/include/uapi/asm/perf_regs.h index ff91192407d1..f599064dd8dc 100644 --- a/arch/powerpc/include/uapi/asm/perf_regs.h +++ b/arch/powerpc/include/uapi/asm/perf_regs.h | |||
| @@ -47,6 +47,7 @@ enum perf_event_powerpc_regs { | |||
| 47 | PERF_REG_POWERPC_DAR, | 47 | PERF_REG_POWERPC_DAR, |
| 48 | PERF_REG_POWERPC_DSISR, | 48 | PERF_REG_POWERPC_DSISR, |
| 49 | PERF_REG_POWERPC_SIER, | 49 | PERF_REG_POWERPC_SIER, |
| 50 | PERF_REG_POWERPC_MMCRA, | ||
| 50 | PERF_REG_POWERPC_MAX, | 51 | PERF_REG_POWERPC_MAX, |
| 51 | }; | 52 | }; |
| 52 | #endif /* _UAPI_ASM_POWERPC_PERF_REGS_H */ | 53 | #endif /* _UAPI_ASM_POWERPC_PERF_REGS_H */ |
diff --git a/arch/powerpc/perf/perf_regs.c b/arch/powerpc/perf/perf_regs.c index 5c36b3a8d47a..3349f3f8fe84 100644 --- a/arch/powerpc/perf/perf_regs.c +++ b/arch/powerpc/perf/perf_regs.c | |||
| @@ -70,6 +70,7 @@ static unsigned int pt_regs_offset[PERF_REG_POWERPC_MAX] = { | |||
| 70 | PT_REGS_OFFSET(PERF_REG_POWERPC_DAR, dar), | 70 | PT_REGS_OFFSET(PERF_REG_POWERPC_DAR, dar), |
| 71 | PT_REGS_OFFSET(PERF_REG_POWERPC_DSISR, dsisr), | 71 | PT_REGS_OFFSET(PERF_REG_POWERPC_DSISR, dsisr), |
| 72 | PT_REGS_OFFSET(PERF_REG_POWERPC_SIER, dar), | 72 | PT_REGS_OFFSET(PERF_REG_POWERPC_SIER, dar), |
| 73 | PT_REGS_OFFSET(PERF_REG_POWERPC_MMCRA, dsisr), | ||
| 73 | }; | 74 | }; |
| 74 | 75 | ||
| 75 | u64 perf_reg_value(struct pt_regs *regs, int idx) | 76 | u64 perf_reg_value(struct pt_regs *regs, int idx) |
| @@ -83,6 +84,11 @@ u64 perf_reg_value(struct pt_regs *regs, int idx) | |||
| 83 | !is_sier_available())) | 84 | !is_sier_available())) |
| 84 | return 0; | 85 | return 0; |
| 85 | 86 | ||
| 87 | if (idx == PERF_REG_POWERPC_MMCRA && | ||
| 88 | (IS_ENABLED(CONFIG_FSL_EMB_PERF_EVENT) || | ||
| 89 | IS_ENABLED(CONFIG_PPC32))) | ||
| 90 | return 0; | ||
| 91 | |||
| 86 | return regs_get_register(regs, pt_regs_offset[idx]); | 92 | return regs_get_register(regs, pt_regs_offset[idx]); |
| 87 | } | 93 | } |
| 88 | 94 | ||
diff --git a/tools/arch/powerpc/include/uapi/asm/perf_regs.h b/tools/arch/powerpc/include/uapi/asm/perf_regs.h index ff91192407d1..f599064dd8dc 100644 --- a/tools/arch/powerpc/include/uapi/asm/perf_regs.h +++ b/tools/arch/powerpc/include/uapi/asm/perf_regs.h | |||
| @@ -47,6 +47,7 @@ enum perf_event_powerpc_regs { | |||
| 47 | PERF_REG_POWERPC_DAR, | 47 | PERF_REG_POWERPC_DAR, |
| 48 | PERF_REG_POWERPC_DSISR, | 48 | PERF_REG_POWERPC_DSISR, |
| 49 | PERF_REG_POWERPC_SIER, | 49 | PERF_REG_POWERPC_SIER, |
| 50 | PERF_REG_POWERPC_MMCRA, | ||
| 50 | PERF_REG_POWERPC_MAX, | 51 | PERF_REG_POWERPC_MAX, |
| 51 | }; | 52 | }; |
| 52 | #endif /* _UAPI_ASM_POWERPC_PERF_REGS_H */ | 53 | #endif /* _UAPI_ASM_POWERPC_PERF_REGS_H */ |
diff --git a/tools/perf/arch/powerpc/include/perf_regs.h b/tools/perf/arch/powerpc/include/perf_regs.h index 1076393e6f43..e18a3556f5e3 100644 --- a/tools/perf/arch/powerpc/include/perf_regs.h +++ b/tools/perf/arch/powerpc/include/perf_regs.h | |||
| @@ -63,7 +63,8 @@ static const char *reg_names[] = { | |||
| 63 | [PERF_REG_POWERPC_TRAP] = "trap", | 63 | [PERF_REG_POWERPC_TRAP] = "trap", |
| 64 | [PERF_REG_POWERPC_DAR] = "dar", | 64 | [PERF_REG_POWERPC_DAR] = "dar", |
| 65 | [PERF_REG_POWERPC_DSISR] = "dsisr", | 65 | [PERF_REG_POWERPC_DSISR] = "dsisr", |
| 66 | [PERF_REG_POWERPC_SIER] = "sier" | 66 | [PERF_REG_POWERPC_SIER] = "sier", |
| 67 | [PERF_REG_POWERPC_MMCRA] = "mmcra" | ||
| 67 | }; | 68 | }; |
| 68 | 69 | ||
| 69 | static inline const char *perf_reg_name(int id) | 70 | static inline const char *perf_reg_name(int id) |
diff --git a/tools/perf/arch/powerpc/util/perf_regs.c b/tools/perf/arch/powerpc/util/perf_regs.c index 07fcd977d93e..34d5134681d9 100644 --- a/tools/perf/arch/powerpc/util/perf_regs.c +++ b/tools/perf/arch/powerpc/util/perf_regs.c | |||
| @@ -53,6 +53,7 @@ const struct sample_reg sample_reg_masks[] = { | |||
| 53 | SMPL_REG(dar, PERF_REG_POWERPC_DAR), | 53 | SMPL_REG(dar, PERF_REG_POWERPC_DAR), |
| 54 | SMPL_REG(dsisr, PERF_REG_POWERPC_DSISR), | 54 | SMPL_REG(dsisr, PERF_REG_POWERPC_DSISR), |
| 55 | SMPL_REG(sier, PERF_REG_POWERPC_SIER), | 55 | SMPL_REG(sier, PERF_REG_POWERPC_SIER), |
| 56 | SMPL_REG(mmcra, PERF_REG_POWERPC_MMCRA), | ||
| 56 | SMPL_REG_END | 57 | SMPL_REG_END |
| 57 | }; | 58 | }; |
| 58 | 59 | ||
