Re: [PATCH] perf: arm-spe: Fix check error when synthesizing events
Em Fri, Jul 24, 2020 at 04:32:18PM +0800, Leo Yan escreveu: > 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 > > Good catch. I checked the ARMv8 ARM and the function payloadlen(), > can confirm the fixing is correct. > > Reviewed-by: Leo Yan Thanks, applied. - Arnaldo > > --- > > 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 > > -- - Arnaldo
Re: [PATCH] perf: arm-spe: Fix check error when synthesizing events
Ping... On 2020/7/24 16:32, Leo Yan wrote: > 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 > > Good catch. I checked the ARMv8 ARM and the function payloadlen(), > can confirm the fixing is correct. > > Reviewed-by: Leo Yan > >> --- >> 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 >>
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 Good catch. I checked the ARMv8 ARM and the function payloadlen(), can confirm the fixing is correct. Reviewed-by: Leo Yan > --- > 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 >
[PATCH] perf: arm-spe: Fix check error when synthesizing events
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 --- 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