| What: /sys/devices/cpu/events/ |
| /sys/devices/cpu/events/branch-misses |
| /sys/devices/cpu/events/cache-references |
| /sys/devices/cpu/events/cache-misses |
| /sys/devices/cpu/events/stalled-cycles-frontend |
| /sys/devices/cpu/events/branch-instructions |
| /sys/devices/cpu/events/stalled-cycles-backend |
| /sys/devices/cpu/events/instructions |
| /sys/devices/cpu/events/cpu-cycles |
| |
| Date: 2013/01/08 |
| |
| Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> |
| |
| Description: Generic performance monitoring events |
| |
| A collection of performance monitoring events that may be |
| supported by many/most CPUs. These events can be monitored |
| using the 'perf(1)' tool. |
| |
| The contents of each file would look like: |
| |
| event=0xNNNN |
| |
| where 'N' is a hex digit and the number '0xNNNN' shows the |
| "raw code" for the perf event identified by the file's |
| "basename". |
| |
| |
| What: /sys/bus/event_source/devices/<pmu>/events/<event> |
| Date: 2014/02/24 |
| Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> |
| Description: Per-pmu performance monitoring events specific to the running system |
| |
| Each file (except for some of those with a '.' in them, '.unit' |
| and '.scale') in the 'events' directory describes a single |
| performance monitoring event supported by the <pmu>. The name |
| of the file is the name of the event. |
| |
| As performance monitoring event names are case |
| insensitive in the perf tool, the perf tool only looks |
| for lower or upper case event names in sysfs to avoid |
| scanning the directory. It is therefore required the |
| name of the event here is either lower or upper case. |
| |
| File contents: |
| |
| <term>[=<value>][,<term>[=<value>]]... |
| |
| Where <term> is one of the terms listed under |
| /sys/bus/event_source/devices/<pmu>/format/ and <value> is |
| a number is base-16 format with a '0x' prefix (lowercase only). |
| If a <term> is specified alone (without an assigned value), it |
| is implied that 0x1 is assigned to that <term>. |
| |
| Examples (each of these lines would be in a separate file): |
| |
| event=0x2abc |
| event=0x423,inv,cmask=0x3 |
| domain=0x1,offset=0x8,starting_index=0xffff |
| domain=0x1,offset=0x8,core=? |
| |
| Each of the assignments indicates a value to be assigned to a |
| particular set of bits (as defined by the format file |
| corresponding to the <term>) in the perf_event structure passed |
| to the perf_open syscall. |
| |
| In the case of the last example, a value replacing "?" would |
| need to be provided by the user selecting the particular event. |
| This is referred to as "event parameterization". Event |
| parameters have the format 'param=?'. |
| |
| What: /sys/bus/event_source/devices/<pmu>/events/<event>.unit |
| Date: 2014/02/24 |
| Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> |
| Description: Perf event units |
| |
| A string specifying the English plural numerical unit that <event> |
| (once multiplied by <event>.scale) represents. |
| |
| Example: |
| |
| Joules |
| |
| What: /sys/bus/event_source/devices/<pmu>/events/<event>.scale |
| Date: 2014/02/24 |
| Contact: Linux kernel mailing list <linux-kernel@vger.kernel.org> |
| Description: Perf event scaling factors |
| |
| A string representing a floating point value expressed in |
| scientific notation to be multiplied by the event count |
| received from the kernel to match the unit specified in the |
| <event>.unit file. |
| |
| Example: |
| |
| 2.3283064365386962890625e-10 |
| |
| This is provided to avoid performing floating point arithmetic |
| in the kernel. |