---------- Forwarded message ---------- From: Mathieu Poirier mathieu.poirier@linaro.org Date: 3 November 2015 at 11:48 Subject: Trace bundles for ETMv3/v4 To: private-opencsd private-opencsd@linaro.org
After a programming marathon I am please to bring you trace bundles for both ETMv3[1] and v4[2]. The code is based on the latest development branch[3], something that seemed like a good idea to avoid maintaining two different tree. It certainly served the purpose but other problems inherent to that approach have also showed up - more on that later.
Since the ETMv4 has more metadata (as per Mike's enclosed document[4]) I had to modify the AUX_TRACE header format. The new format can be found here [5], with the assignment of the slots described here [6]. The end result is that ETMv3 headers will have zero'ed out slots, something I can't avoid since the auxiliary area foundation assumes a fix amount of data for all tracers. It's not my ideal solution but we can always try to change the world when things are actually working.
The perf.data file found in both bundles have been generated using this command:
$ perf record -vvv -e cs_etm// --per-thread uname
As such the amount of traces should be relatively small. In the bundles you will also find the .debug directory, the perf.data file and a medata.txt file. The latter is simply a snapshot of the relevant registers as listed in Mike's document[4]. The snapshot was taken *after* the trace run and only there to *somewhat* make sense of how things were configured, which brings us to the problems I've hinted about earlier.
Contrary to V1 and V2 the newest code base is configuring tracers as the event is scheduled rather than at initialisation time, making the metadata in the perf.data completely irrelevant. I will likely have a solution for that so hang tight, it's coming.
Please have a look and we'll touch base in the meeting tomorrow.
Regards, Mathieu
[1]. uname.etmv3.tgz [2]. uname.etmv4.tgz [3]. https://git.linaro.org/people/mathieu.poirier/coresight.git/shortlog/refs/he... [4]. RefTrcDecode-API and Components_0v3.pdf [5]. https://git.linaro.org/people/mathieu.poirier/coresight.git/blob/refs/heads/... [6]. https://git.linaro.org/people/mathieu.poirier/coresight.git/blob/refs/heads/...