Re: [PATCH] perf: cs-etm: Update to build with latest opencsd version.

From: Mathieu Poirier
Date: Tue Apr 21 2020 - 12:52:16 EST


On Thu, 16 Apr 2020 at 20:11, Leo Yan <leo.yan@xxxxxxxxxx> wrote:
>
> Hi Mike,
>
> On Wed, Apr 15, 2020 at 09:14:20PM +0100, Mike Leach wrote:
> > OpenCSD version v0.14.0 adds in a new output element. This is represented
> > by a new value in the generic element type enum, which must be added to
> > the handling code in perf cs-etm-decoder to prevent build errors due to
> > build options on the perf project.
> >
> > This element is not currently used by the perf decoder.
> >
> > Tested on Linux 5.7-rc1.
> >
> > Signed-off-by: Mike Leach <mike.leach@xxxxxxxxxx>
> > ---
> > tools/perf/util/cs-etm-decoder/cs-etm-decoder.c | 4 ++++
> > 1 file changed, 4 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 cd92a99eb89d..da4737cbc2ab 100644
> > --- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> > +++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
> > @@ -564,6 +564,10 @@ static ocsd_datapath_resp_t cs_etm_decoder__gen_trace_elem_printer(
> > resp = cs_etm_decoder__set_tid(etmq, packet_queue,
> > elem, trace_chan_id);
> > break;
> > + /* Unused packet types */
> > +#if OCSD_VER_NUM >= 0x0E00
> > + case OCSD_GEN_TRC_ELEM_I_RANGE_NOPATH:
> > +#endif
>
> I don't think use macros to distinguish OpenCSD version number is a
> good idea, this will get more and more code to checking version number
> if later have more these kinds improvement and finally it's hard to
> maintain.

I agree.

>
> Sugget just simply add the new case for
> OCSD_GEN_TRC_ELEM_I_RANGE_NOPATH, considering if user uses an old version
> OpenCSD and doesn't output this new element, the new added case doesn't
> introduce issue for old OpenCSD lib.
>
> Futhermore, suggest to change the code in
> tools/build/feature/test-libopencsd.c, so can reflect the kernel 5.7
> to require OpenCSD v0.14.0 or later version when build perf.

As Leo pointed out, I think we should just continue dealing with new
versions of the library in test-libopencsd.c.

>
> Thanks,
> Leo
>
> > case OCSD_GEN_TRC_ELEM_ADDR_NACC:
> > case OCSD_GEN_TRC_ELEM_CYCLE_COUNT:
> > case OCSD_GEN_TRC_ELEM_ADDR_UNKNOWN:
> > --
> > 2.17.1
> >
> > _______________________________________________
> > CoreSight mailing list
> > CoreSight@xxxxxxxxxxxxxxxx
> > https://lists.linaro.org/mailman/listinfo/coresight