From: Leo Yan <firstname.lastname@example.org> To: Mike Leach <email@example.com> Cc: James Clark <firstname.lastname@example.org>, Arnaldo Carvalho de Melo <email@example.com>, Mathieu Poirier <firstname.lastname@example.org>, Coresight ML <email@example.com>, Al Grant <firstname.lastname@example.org>, "Suzuki K. Poulose" <email@example.com>, Anshuman Khandual <firstname.lastname@example.org>, John Garry <email@example.com>, Will Deacon <firstname.lastname@example.org>, Mark Rutland <email@example.com>, Alexander Shishkin <firstname.lastname@example.org>, Jiri Olsa <email@example.com>, Namhyung Kim <firstname.lastname@example.org>, linux-arm-kernel <email@example.com>, Linux Kernel Mailing List <firstname.lastname@example.org>, email@example.com Subject: Re: [PATCH 3/6] perf cs-etm: Save TRCDEVARCH register Date: Mon, 2 Aug 2021 20:05:45 +0800 [thread overview] Message-ID: <20210802120545.GJ7437@leoy-ThinkPad-X240s> (raw) In-Reply-To: <CAJ9a7Vj_KhV+v6VU+EQN5t818VS9jvf3v3-2JbwVMOHZbi3gcg@mail.gmail.com> Hi Mike, On Mon, Aug 02, 2021 at 12:21:31PM +0100, Mike Leach wrote: [...] > > Here I think the right thing to do is to support newer revisions for > > ETMv4, and then based on the revision it creates a decoder with > > supporting ETE feature. For a more neat solution, if the perf tool > > passes the "correct" revision number to the OpenCSD decoder, it should > > can decode trace data with ETE packets. In this way, the ETE decoding > > can be transparent for perf cs-etm code. > > > > The OpenCSD decoder separates the ETMv4 decoder from the ETE decoder - > for the reasons given above. Thanks for explanation. > Additionally the ETE decoder and the ETMv4 decoder required different > sets of ID registers to correctly set up the decoder. For example, > for ETMv4 the version is extracted form TRCIDR1, for ETE the version > in TRCIDR1 is set 0xFF, and thus needs TRCDEVARCH to extract the > revision. It is likely that later updates to ETE will require an > additional TRCIDR register to be saved. Okay, for ETMv4.x and ETE, finally I think we need to rely on TRCDEVARCH to decide the tracer version based on the architecture number (arch 4 or 5) and revision number. > Choosing the base type of decoder in this way is how the library can > support ETMv3, EMTv4, ETE, STM, PTM etc - and while some of those > protocols use TRCIDR1 and TRCDEVARCH - not all do. > > It would in theory be possible to have the OpenCSD library > "autodetect" the type of decoder needed based purely on a set of ID > registers. But this set of ID registers would be far larger than the > ones currently used, and would require modifcation to a lot of the > existing device drivers to ensure they were accessible via sysfs. This > register set includes the ID registers that are currently used to > identify the component on the AMBA bus and match to the correct > driver, plus additional CoreSight management registers. This would > also create a dependency between decoder creation and ID numbers - in > the same way that each new ETM4.x part number has to be added to the > ETM4.x device driver. > > Such a system would require a significant update to the OpenCSD > infrastructure, and is not planned at this time. It's fine for me not introducing significant change in OpenCSD. If so, I understand your suggestion in another email to add a new magic number and a new protocol (this patch set has added the new protocol CS_ETM_PROTO_ETE) for creating ETE decoder. Just confirm one thing which is a bit confused me: for ETMv4.5 or any newer ETM IPs, should the perf tool keep the existed way to create the ETMv4 decoder? Or there have updating is required for decoder to support the extended packets? Thanks, Leo
next prev parent reply other threads:[~2021-08-02 12:05 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-21 9:06 [PATCH 0/6] Support ETE decoding James Clark 2021-07-21 9:07 ` [PATCH 1/6] perf cs-etm: Refactor initialisation of decoder params James Clark 2021-07-31 5:48 ` Leo Yan 2021-07-21 9:07 ` [PATCH 2/6] perf cs-etm: Initialise architecture based on TRCIDR1 James Clark 2021-07-22 11:10 ` Mike Leach 2021-07-31 6:03 ` Leo Yan 2021-08-02 14:04 ` Mike Leach 2021-08-02 15:03 ` Leo Yan 2021-08-02 15:43 ` Mike Leach 2021-07-21 9:07 ` [PATCH 3/6] perf cs-etm: Save TRCDEVARCH register James Clark 2021-07-21 9:48 ` Mike Leach 2021-07-23 12:09 ` James Clark 2021-07-31 6:37 ` Leo Yan 2021-08-03 12:33 ` James Clark 2021-08-03 12:34 ` James Clark 2021-08-05 9:40 ` Leo Yan 2021-08-03 12:36 ` James Clark 2021-07-31 7:43 ` Leo Yan 2021-08-02 11:21 ` Mike Leach 2021-08-02 12:05 ` Leo Yan [this message] 2021-08-02 12:48 ` Mike Leach 2021-08-03 12:29 ` James Clark 2021-07-21 9:07 ` [PATCH 4/6] perf cs-etm: Update OpenCSD decoder for ETE James Clark 2021-07-31 6:50 ` Leo Yan 2021-07-21 9:07 ` [PATCH 5/6] perf cs-etm: Create ETE decoder James Clark 2021-07-31 7:23 ` Leo Yan 2021-08-03 13:09 ` James Clark 2021-08-05 10:59 ` Leo Yan 2021-07-21 9:07 ` [PATCH 6/6] perf cs-etm: Print the decoder name James Clark 2021-07-31 7:30 ` Leo Yan 2021-08-06 9:43 ` James Clark 2021-08-06 11:52 ` Leo Yan 2021-07-21 14:59 ` [PATCH 0/6] Support ETE decoding Mathieu Poirier
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210802120545.GJ7437@leoy-ThinkPad-X240s \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH 3/6] perf cs-etm: Save TRCDEVARCH register' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).