mirror of https://gitee.com/openkylin/linux.git
powerpc/perf: Drop the check for SIAR_VALID
In power10 DD1, there is an issue that causes the SIAR_VALID bit of the SIER (Sampled Instruction Event Register) to not be set. But the SIAR_VALID bit is used for fetching the instruction address from the SIAR (Sampled Instruction Address Register), and marked events are sampled only if the SIAR_VALID bit is set. So drop the check for SIAR_VALID and return true always incase of power10 DD1. Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20201021085329.384535-2-maddy@linux.ibm.com
This commit is contained in:
parent
9e8d13697c
commit
fdf13a6575
|
@ -350,7 +350,14 @@ static inline int siar_valid(struct pt_regs *regs)
|
|||
int marked = mmcra & MMCRA_SAMPLE_ENABLE;
|
||||
|
||||
if (marked) {
|
||||
if (ppmu->flags & PPMU_HAS_SIER)
|
||||
/*
|
||||
* SIER[SIAR_VALID] is not set for some
|
||||
* marked events on power10 DD1, so drop
|
||||
* the check for SIER[SIAR_VALID] and return true.
|
||||
*/
|
||||
if (ppmu->flags & PPMU_P10_DD1)
|
||||
return 0x1;
|
||||
else if (ppmu->flags & PPMU_HAS_SIER)
|
||||
return regs->dar & SIER_SIAR_VALID;
|
||||
|
||||
if (ppmu->flags & PPMU_SIAR_VALID)
|
||||
|
|
Loading…
Reference in New Issue