Commit | Line | Data |
---|---|---|
6baec315 | 1 | ========================== |
a33b0daa PM |
2 | ARM Cache Coherent Network |
3 | ========================== | |
4 | ||
5 | CCN-504 is a ring-bus interconnect consisting of 11 crosspoints | |
6 | (XPs), with each crosspoint supporting up to two device ports, | |
7 | so nodes (devices) 0 and 1 are connected to crosspoint 0, | |
8 | nodes 2 and 3 to crosspoint 1 etc. | |
9 | ||
10 | PMU (perf) driver | |
11 | ----------------- | |
12 | ||
13 | The CCN driver registers a perf PMU driver, which provides | |
14 | description of available events and configuration options | |
15 | in sysfs, see /sys/bus/event_source/devices/ccn*. | |
16 | ||
17 | The "format" directory describes format of the config, config1 | |
18 | and config2 fields of the perf_event_attr structure. The "events" | |
19 | directory provides configuration templates for all documented | |
20 | events, that can be used with perf tool. For example "xp_valid_flit" | |
21 | is an equivalent of "type=0x8,event=0x4". Other parameters must be | |
90d11e26 | 22 | explicitly specified. |
a33b0daa | 23 | |
90d11e26 PM |
24 | For events originating from device, "node" defines its index. |
25 | ||
26 | Crosspoint PMU events require "xp" (index), "bus" (bus number) | |
27 | and "vc" (virtual channel ID). | |
28 | ||
29 | Crosspoint watchpoint-based events (special "event" value 0xfe) | |
251c99bb | 30 | require "xp" and "vc" as above plus "port" (device port index), |
90d11e26 PM |
31 | "dir" (transmit/receive direction), comparator values ("cmp_l" |
32 | and "cmp_h") and "mask", being index of the comparator mask. | |
6baec315 | 33 | |
a33b0daa PM |
34 | Masks are defined separately from the event description |
35 | (due to limited number of the config values) in the "cmp_mask" | |
36 | directory, with first 8 configurable by user and additional | |
37 | 4 hardcoded for the most frequent use cases. | |
38 | ||
39 | Cycle counter is described by a "type" value 0xff and does | |
40 | not require any other settings. | |
41 | ||
ffa41524 PM |
42 | The driver also provides a "cpumask" sysfs attribute, which contains |
43 | a single CPU ID, of the processor which will be used to handle all | |
44 | the CCN PMU events. It is recommended that the user space tools | |
45 | request the events on this processor (if not, the perf_event->cpu value | |
46 | will be overwritten anyway). In case of this processor being offlined, | |
47 | the events are migrated to another one and the attribute is updated. | |
48 | ||
6baec315 | 49 | Example of perf tool use:: |
a33b0daa | 50 | |
6baec315 MCC |
51 | / # perf list | grep ccn |
52 | ccn/cycles/ [Kernel PMU event] | |
53 | <...> | |
54 | ccn/xp_valid_flit,xp=?,port=?,vc=?,dir=?/ [Kernel PMU event] | |
55 | <...> | |
a33b0daa | 56 | |
6baec315 MCC |
57 | / # perf stat -a -e ccn/cycles/,ccn/xp_valid_flit,xp=1,port=0,vc=1,dir=1/ \ |
58 | sleep 1 | |
a33b0daa PM |
59 | |
60 | The driver does not support sampling, therefore "perf record" will | |
ffa41524 | 61 | not work. Per-task (without "-a") perf sessions are not supported. |