Messages in this thread | | | Date | Fri, 24 Jul 2020 16:32:18 +0800 | From | Leo Yan <> | Subject | Re: [PATCH] perf: arm-spe: Fix check error when synthesizing events |
| |
Hi Wei,
On Fri, Jul 24, 2020 at 03:26:28PM +0800, Wei Li wrote: > In arm_spe_read_record(), when we are processing an events packet, > 'decoder->packet.index' is the length of payload, which has been > transformed in payloadlen(). So correct the check of 'idx'. > > Signed-off-by: Wei Li <liwei391@huawei.com>
Good catch. I checked the ARMv8 ARM and the function payloadlen(), can confirm the fixing is correct.
Reviewed-by: Leo Yan <leo.yan@linaro.org>
> --- > tools/perf/util/arm-spe-decoder/arm-spe-decoder.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c > index 302a14d0aca9..93e063f22be5 100644 > --- a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c > +++ b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c > @@ -182,15 +182,15 @@ static int arm_spe_read_record(struct arm_spe_decoder *decoder) > if (payload & BIT(EV_TLB_ACCESS)) > decoder->record.type |= ARM_SPE_TLB_ACCESS; > > - if ((idx == 1 || idx == 2 || idx == 3) && > + if ((idx == 2 || idx == 4 || idx == 8) && > (payload & BIT(EV_LLC_MISS))) > decoder->record.type |= ARM_SPE_LLC_MISS; > > - if ((idx == 1 || idx == 2 || idx == 3) && > + if ((idx == 2 || idx == 4 || idx == 8) && > (payload & BIT(EV_LLC_ACCESS))) > decoder->record.type |= ARM_SPE_LLC_ACCESS; > > - if ((idx == 1 || idx == 2 || idx == 3) && > + if ((idx == 2 || idx == 4 || idx == 8) && > (payload & BIT(EV_REMOTE_ACCESS))) > decoder->record.type |= ARM_SPE_REMOTE_ACCESS; > > -- > 2.17.1 >
| |