[PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4

Mike Leach posted 1 patch 2 years, 7 months ago
tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4
Posted by Mike Leach 2 years, 7 months ago
OpenCSD version 1.4 is released with support for FEAT_ITE.
This adds a new packet type, with associated output element ID in
the packet type enum - OCSD_GEN_TRC_ELEM_INSTRUMENTATION.

As we just ignore this packet in perf, add to the switch statement
to avoid the "enum not handled in switch error", but conditionally
so as not to break the perf build for older OpenCSD installations.

Signed-off-by: Mike Leach <mike.leach@linaro.org>
---
 tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
index fa3aa9c0fb2e..48e7121880a9 100644
--- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
+++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
@@ -604,6 +604,9 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
 	case OCSD_GEN_TRC_ELEM_CUSTOM:
 	case OCSD_GEN_TRC_ELEM_SYNC_MARKER:
 	case OCSD_GEN_TRC_ELEM_MEMTRANS:
+#if (OCSD_VER_NUM >= 0x010400)
+	case OCSD_GEN_TRC_ELEM_INSTRUMENTATION:
+#endif
 	default:
 		break;
 	}
-- 
2.17.1
Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4
Posted by James Clark 2 years, 7 months ago

On 20/01/2023 15:37, Mike Leach wrote:
> OpenCSD version 1.4 is released with support for FEAT_ITE.
> This adds a new packet type, with associated output element ID in
> the packet type enum - OCSD_GEN_TRC_ELEM_INSTRUMENTATION.
> 
> As we just ignore this packet in perf, add to the switch statement
> to avoid the "enum not handled in switch error", but conditionally
> so as not to break the perf build for older OpenCSD installations.
> 
> Signed-off-by: Mike Leach <mike.leach@linaro.org>
> ---
>  tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> index fa3aa9c0fb2e..48e7121880a9 100644
> --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> @@ -604,6 +604,9 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
>  	case OCSD_GEN_TRC_ELEM_CUSTOM:
>  	case OCSD_GEN_TRC_ELEM_SYNC_MARKER:
>  	case OCSD_GEN_TRC_ELEM_MEMTRANS:
> +#if (OCSD_VER_NUM >= 0x010400)
> +	case OCSD_GEN_TRC_ELEM_INSTRUMENTATION:
> +#endif
>  	default:
>  		break;
>  	}

Checked the build with both old and new versions of OpenCSD and it's ok:

Reviewed-by: James Clark <james.clark@arm.com>
Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4
Posted by Ian Rogers 2 years, 7 months ago
On Fri, Jan 20, 2023 at 7:47 AM James Clark <james.clark@arm.com> wrote:
>
>
>
> On 20/01/2023 15:37, Mike Leach wrote:
> > OpenCSD version 1.4 is released with support for FEAT_ITE.
> > This adds a new packet type, with associated output element ID in
> > the packet type enum - OCSD_GEN_TRC_ELEM_INSTRUMENTATION.
> >
> > As we just ignore this packet in perf, add to the switch statement
> > to avoid the "enum not handled in switch error", but conditionally
> > so as not to break the perf build for older OpenCSD installations.
> >
> > Signed-off-by: Mike Leach <mike.leach@linaro.org>
> > ---
> >  tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> > index fa3aa9c0fb2e..48e7121880a9 100644
> > --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> > +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> > @@ -604,6 +604,9 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
> >       case OCSD_GEN_TRC_ELEM_CUSTOM:
> >       case OCSD_GEN_TRC_ELEM_SYNC_MARKER:
> >       case OCSD_GEN_TRC_ELEM_MEMTRANS:
> > +#if (OCSD_VER_NUM >= 0x010400)
> > +     case OCSD_GEN_TRC_ELEM_INSTRUMENTATION:
> > +#endif
> >       default:
> >               break;
> >       }
>
> Checked the build with both old and new versions of OpenCSD and it's ok:
>
> Reviewed-by: James Clark <james.clark@arm.com>

Acked-by: Ian Rogers <irogers@google.com>

Thanks,
Ian
Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4
Posted by James Clark 2 years, 7 months ago

On 24/01/2023 21:50, Ian Rogers wrote:
> On Fri, Jan 20, 2023 at 7:47 AM James Clark <james.clark@arm.com> wrote:
>>
>>
>>
>> On 20/01/2023 15:37, Mike Leach wrote:
>>> OpenCSD version 1.4 is released with support for FEAT_ITE.
>>> This adds a new packet type, with associated output element ID in
>>> the packet type enum - OCSD_GEN_TRC_ELEM_INSTRUMENTATION.
>>>
>>> As we just ignore this packet in perf, add to the switch statement
>>> to avoid the "enum not handled in switch error", but conditionally
>>> so as not to break the perf build for older OpenCSD installations.
>>>
>>> Signed-off-by: Mike Leach <mike.leach@linaro.org>
>>> ---
>>>  tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
>>> index fa3aa9c0fb2e..48e7121880a9 100644
>>> --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
>>> +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
>>> @@ -604,6 +604,9 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
>>>       case OCSD_GEN_TRC_ELEM_CUSTOM:
>>>       case OCSD_GEN_TRC_ELEM_SYNC_MARKER:
>>>       case OCSD_GEN_TRC_ELEM_MEMTRANS:
>>> +#if (OCSD_VER_NUM >= 0x010400)
>>> +     case OCSD_GEN_TRC_ELEM_INSTRUMENTATION:
>>> +#endif
>>>       default:
>>>               break;
>>>       }
>>
>> Checked the build with both old and new versions of OpenCSD and it's ok:
>>
>> Reviewed-by: James Clark <james.clark@arm.com>
> 
> Acked-by: Ian Rogers <irogers@google.com>
> 
> Thanks,
> Ian

Hi Arnaldo,

Is it ok to merge this change? If anyone is building with the latest
OpenCSD they will get a build error on the unhandled switch case, and we
just got it in our CI too.

I suppose we could disable the warning around this switch, but it's
pretty rare to add new packets so might be best to leave it.

Thanks
James
Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4
Posted by Arnaldo Carvalho de Melo 2 years, 7 months ago
Em Mon, Jan 30, 2023 at 12:05:53PM +0000, James Clark escreveu:
> On 24/01/2023 21:50, Ian Rogers wrote:
> > On Fri, Jan 20, 2023 at 7:47 AM James Clark <james.clark@arm.com> wrote:
> >> On 20/01/2023 15:37, Mike Leach wrote:
> >>> OpenCSD version 1.4 is released with support for FEAT_ITE.
> >>> This adds a new packet type, with associated output element ID in
> >>> the packet type enum - OCSD_GEN_TRC_ELEM_INSTRUMENTATION.
> >>>
> >>> As we just ignore this packet in perf, add to the switch statement
> >>> to avoid the "enum not handled in switch error", but conditionally
> >>> so as not to break the perf build for older OpenCSD installations.
> >>>
> >>> Signed-off-by: Mike Leach <mike.leach@linaro.org>
> >>> ---
> >>>  tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 3 +++
> >>>  1 file changed, 3 insertions(+)
> >>>
> >>> diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> >>> index fa3aa9c0fb2e..48e7121880a9 100644
> >>> --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> >>> +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> >>> @@ -604,6 +604,9 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
> >>>       case OCSD_GEN_TRC_ELEM_CUSTOM:
> >>>       case OCSD_GEN_TRC_ELEM_SYNC_MARKER:
> >>>       case OCSD_GEN_TRC_ELEM_MEMTRANS:
> >>> +#if (OCSD_VER_NUM >= 0x010400)
> >>> +     case OCSD_GEN_TRC_ELEM_INSTRUMENTATION:
> >>> +#endif
> >>>       default:
> >>>               break;
> >>>       }
> >>
> >> Checked the build with both old and new versions of OpenCSD and it's ok:
> >>
> >> Reviewed-by: James Clark <james.clark@arm.com>
> > 
> > Acked-by: Ian Rogers <irogers@google.com>
> > 
> > Thanks,
> > Ian
> 
> Hi Arnaldo,
> 
> Is it ok to merge this change? If anyone is building with the latest
> OpenCSD they will get a build error on the unhandled switch case, and we
> just got it in our CI too.
> 
> I suppose we could disable the warning around this switch, but it's
> pretty rare to add new packets so might be best to leave it.

Thanks, applied.

- Arnaldo