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