2023-01-20 16:12:47

by James Clark

[permalink] [raw]
Subject: Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4



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 <[email protected]>
> ---
> 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 <[email protected]>


2023-01-24 21:50:59

by Ian Rogers

[permalink] [raw]
Subject: Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4

On Fri, Jan 20, 2023 at 7:47 AM James Clark <[email protected]> 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 <[email protected]>
> > ---
> > 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 <[email protected]>

Acked-by: Ian Rogers <[email protected]>

Thanks,
Ian

2023-01-30 12:07:40

by James Clark

[permalink] [raw]
Subject: Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4



On 24/01/2023 21:50, Ian Rogers wrote:
> On Fri, Jan 20, 2023 at 7:47 AM James Clark <[email protected]> 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 <[email protected]>
>>> ---
>>> 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 <[email protected]>
>
> Acked-by: Ian Rogers <[email protected]>
>
> 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

2023-01-30 14:00:24

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] perf: cs-etm: Update decoder code for OpenCSD version 1.4

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 <[email protected]> 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 <[email protected]>
> >>> ---
> >>> 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 <[email protected]>
> >
> > Acked-by: Ian Rogers <[email protected]>
> >
> > 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