Lines Matching +full:tmc +full:- +full:etr
2 Coresight - HW Assisted Tracing on ARM
9 ------------
38 0 CPU 0<-->: C : 0 CPU 0<-->: C : : C : @ STM @ || System ||
39 |->0000000 : T : |->0000000 : T : : T :<--->@@@@@ || Memory ||
40 | #######<-->: I : | #######<-->: I : : I : @@@<-| ||||||||||||
43 | |->### | ! | |->### | ! | ! . | || DAP ||
49 *****************************************************************<-|
63 | * ===== F =====<---------|
65 |-->:: CTI ::<!! === N ===
69 |------>&& ETB &&<......II I =======
75 |------>& TPIU &<......II I DAP = Debug Access Port
84 all trace data are carried out-of-band on the ATB bus. The CTM provides
90 replicator, TMC, TPIU and ETB. Future work will enable more
95 ---------------------------
111 TMC-ETR:
113 TMC-ETF:
123 Funnel, replicator (intelligent or not), TMC-ETR
125 ETBv1.0, ETB1.1, TPIU, TMC-ETF
131 --------------------
133 See ``Documentation/devicetree/bindings/arm/arm,coresight-*.yaml`` for details.
140 ----------------------------
190 drvdata->dev = &adev->dev;
201 --------------------
212 20070000.etr 20120000.replicator 220c0000.funnel
216 devices are a bit cryptic and non-obvious. Thus, a new naming scheme was
227 <device_type_prefix> - A prefix specific to the type of the device
228 N - a sequential number assigned based on the order
245 -----------------------
257 linaro-developer:~# ls - l /sys/bus/coresight/devices/etm0/connections
258 <file details> cti_cpu0 -> ../../../23020000.cti/cti_cpu0
260 <file details> out:0 -> ../../../230c0000.funnel/funnel2
264 linaro-developer:~# ls -l /sys/bus/coresight/devices/funnel2/connections
265 <file details> in:0 -> ../../../23040000.etm/etm0
266 <file details> in:1 -> ../../../23140000.etm/etm3
267 <file details> in:2 -> ../../../23240000.etm/etm4
268 <file details> in:3 -> ../../../23340000.etm/etm5
270 <file details> out:0 -> ../../../20040000.funnel/funnel0
274 linaro-developer:~# ls -l /sys/bus/coresight/devices/funnel0/connections
275 <file details> in:0 -> ../../../220c0000.funnel/funnel1
276 <file details> in:1 -> ../../../230c0000.funnel/funnel2
278 <file details> out:0 -> ../../../20010000.etf/tmc_etf0
283 linaro-developer:~# ls -l /sys/bus/coresight/devices/tmc_etf0/connections
284 <file details> cti_sys0 -> ../../../20020000.cti/cti_sys0
285 <file details> in:0 -> ../../../20040000.funnel/funnel0
287 <file details> out:0 -> ../../../20150000.funnel/funnel4
291 linaro-developer:~# ls -l /sys/bus/coresight/devices/funnel4/connections
292 <file details> in:0 -> ../../../20010000.etf/tmc_etf0
293 <file details> in:1 -> ../../../20140000.etf/tmc_etf1
295 <file details> out:0 -> ../../../20120000.replicator/replicator0
299 linaro-developer:~# ls -l /sys/bus/coresight/devices/replicator0/connections
300 <file details> in:0 -> ../../../20150000.funnel/funnel4
302 <file details> out:0 -> ../../../20030000.tpiu/tpiu0
303 <file details> out:1 -> ../../../20070000.etr/tmc_etr0
307 linaro-developer:~# ls -l /sys/bus/coresight/devices/tmc_etr0/connections
308 <file details> cti_sys0 -> ../../../20020000.cti/cti_sys0
309 <file details> in:0 -> ../../../20120000.replicator/replicator0
318 via the CTM. See (Documentation/trace/coresight/coresight-ect.rst)
322 linaro-developer:~# ls -l /sys/bus/coresight/devices/cti_sys0/connections
324 <file details> stm0 -> ../../../20100000.stm/stm0
325 <file details> tmc_etf0 -> ../../../20010000.etf/tmc_etf0
326 <file details> tmc_etr0 -> ../../../20070000.etr/tmc_etr0
327 <file details> tpiu0 -> ../../../20030000.tpiu/tpiu0
331 -----------------------------
372 RAM wrt ptr: 0x19d3 <----- The write pointer is moving
393 The file cstrace.bin can be decompressed using "ptm2human", DS-5 or Trace32.
395 Following is a DS-5 output of an experimental loop that increments a variable up
409 Instruction 0 0x8026B55C DAFFFFFA true BLE {pc}-0x10 ; 0x8026b54c
415 Instruction 0 0x8026B55C DAFFFFFA true BLE {pc}-0x10 ; 0x8026b54c
420 Instruction 0 0x8026B55C DAFFFFFA true BLE {pc}-0x10 ; 0x8026b54c
425 Instruction 0 0x8026B55C DAFFFFFA true BLE {pc}-0x10 ; 0x8026b54c
430 Instruction 0 0x8026B55C DAFFFFFA true BLE {pc}-0x10 ; 0x8026b54c
435 Instruction 0 0x8026B55C DAFFFFFA true BLE {pc}-0x10 ; 0x8026b54c
459 linaro@linaro-nano:~$ ./perf list pmu
461 List of pre-defined events (to be used in -e):
465 linaro@linaro-nano:~$
486 root@linaro-nano:~# perf record -e cs_etm/@tmc_etr0/u --per-thread program
501 -----------------------------
511 perf record -e cs_etm/@tmc_etr0/u --per-thread
516 The --itrace option controls the type and frequency of synthesized events
519 Note that only 64-bit programs are currently supported - further work is
520 required to support instruction decode of 32-bit Arm programs.
548 automatically enable the "contextid" config - but for EL2 it is possible to make
553 perf record -e cs_etm/contextid1,contextid2/u -- vm
559 'perf inject' accepts the --itrace option in which case tracing data is
563 perf inject --itrace --strip -i perf.data -o perf.data.new
570 $ gcc-5 -O3 sort.c -o sort
571 $ taskset -c 2 ./sort
575 $ perf record -e cs_etm/@tmc_etr0/u --per-thread taskset -c 2 ./sort
581 $ perf inject -i perf.data -o inj.data --itrace=il64 --strip
582 $ create_gcov --binary=./sort --profile=inj.data --gcov=sort.gcov -gcov_version=1
583 $ gcc-5 -O3 -fauto-profile=sort.gcov sort.c -o sort_autofdo
584 $ taskset -c 2 ./sort_autofdo
594 .. list-table::
595 :header-rows: 1
597 * - Option
598 - Description
599 * - branch_broadcast
600 - Session local version of the system wide setting:
601 :ref:`ETM_MODE_BB <coresight-branch-broadcast>`
602 * - contextid
603 - See `Tracing PID`_
604 * - contextid1
605 - See `Tracing PID`_
606 * - contextid2
607 - See `Tracing PID`_
608 * - configid
609 - Selection for a custom configuration. This is an implementation detail and not used directly,
610 see :ref:`trace/coresight/coresight-config:Using Configurations in perf`
611 * - preset
612 - Override for parameters in a custom configuration, see
613 :ref:`trace/coresight/coresight-config:Using Configurations in perf`
614 * - sinkid
615 - Hashed version of the string to select a sink, automatically set when using the @ notation.
618 * - cycacc
619 - Session local version of the system wide setting: :ref:`ETMv4_MODE_CYCACC
620 <coresight-cycle-accurate>`
621 * - retstack
622 - Session local version of the system wide setting: :ref:`ETM_MODE_RETURNSTACK
623 <coresight-return-stack>`
624 * - timestamp
625 - Session local version of the system wide setting: :ref:`ETMv4_MODE_TIMESTAMP
626 <coresight-timestamp>`
627 * - cc_threshold
628 - Cycle count threshold value. If nothing is provided here or the provided value is 0, then the
633 -------------------------
635 Using the System Trace Macrocell module is the same as the tracers - the only
656 root@genericarmv8:~# ls -l /dev/stm0
657 crw------- 1 root root 10, 61 Jan 3 18:11 /dev/stm0
661 - Documentation/trace/stm.rst [#second]_.
664 ---------------------
671 (Documentation/trace/coresight/coresight-ect.rst) [#fourth]_.
674 ------------------------------
684 (Documentation/trace/coresight/coresight-config.rst) [#fifth]_.
687 .. [#first] Documentation/ABI/testing/sysfs-bus-coresight-devices-stm
691 .. [#third] https://github.com/Linaro/perf-opencsd
693 .. [#fourth] Documentation/trace/coresight/coresight-ect.rst
695 .. [#fifth] Documentation/trace/coresight/coresight-config.rst