1LIBPFM(3) Linux Programmer's Manual LIBPFM(3)
2
3
4
6 libpfm_intel_bdx_unc_cbo - support for Intel Broadwell Server C-Box
7 uncore PMU
8
10 #include <perfmon/pfmlib.h>
11
12 PMU name: bdx_unc_cbo[0-21]
13 PMU desc: Intel Broadwell Server C-Box uncore PMU
14
15
17 The library supports the Intel Broadwell Server C-Box (coherency
18 engine) uncore PMU. This PMU model exists on various Broadwell server
19 models (79, 86) . There is one C-box PMU per physical core. Therefore
20 there are up to twenty-one identical C-Box PMU instances numbered from
21 0 to 21. On dual-socket systems, the number refers to the C-Box PMU on
22 the socket where the program runs. For instance, if running on CPU18,
23 then bdx_unc_cbo0 refers to the C-Box for physical core 0 on socket 1.
24 Conversely, if running on CPU0, then the same bdx_unc_cbo0 refers to
25 the C-Box for physical core 0 but on socket 0.
26
27 Each C-Box PMU implements 4 generic counters and two filter registers
28 used only with certain events and umasks.
29
30
32 The following modifiers are supported on Intel Broadwell C-Box uncore
33 PMU:
34
35 e Enable edge detection, i.e., count only when there is a state
36 transition from no occurrence of the event to at least one
37 occurrence. This modifier must be combined with a threshold mod‐
38 ifier (t) with a value greater or equal to one. This is a bool‐
39 ean modifier.
40
41 t Set the threshold value. When set to a non-zero value, the
42 counter counts the number of C-Box cycles in which the number of
43 occurrences of the event is greater or equal to the threshold.
44 This is an integer modifier with values in the range [0:255].
45
46 nf Node filter. Certain events, such as UNC_C_LLC_LOOKUP,
47 UNC_C_LLC_VICTIMS, provide a NID umask. Sometimes the NID is
48 combined with other filtering capabilities, such as opcodes.
49 The node filter is an 8-bit max bitmask. A node corresponds to a
50 processor socket. The legal values therefore depend on the
51 underlying hardware configuration. For dual-socket systems, the
52 bitmask has two valid bits [0:1].
53
54 cf Core Filter. This is a 5-bit filter which is used to filter
55 based on physical core origin of the C-Box request. Possible
56 values are 0-63. If the filter is not specified, then no filter‐
57 ing takes place. Bit 0-3 indicate the physical core id and bit
58 4 filters on non thread-related data.
59
60 tf Thread Filter. This is a 1-bit filter which is used to filter C-
61 Box requests based on logical processor (hyper-thread) identifi‐
62 cation. Possibles values are 0-1. If the filter is not speci‐
63 fied, then no filtering takes place.
64
65 nc Non-Coherent. This is a 1-bit filter which is used to filter C-
66 Box requests only for the TOR_INSERTS and TOR_OCCUPANCY umasks
67 using the OPCODE matcher. If the filter is not specified, then
68 no filtering takes place.
69
70 isoc Isochronous. This is a 1-bit filter which is used to filter C-
71 Box requests only for the TOR_INSERTS and TOR_OCCUPANCY umasks
72 using the OPCODE matcher. If the filter is not specified, then
73 no filtering takes place.
74
75
77 Certain events, such as UNC_C_TOR_INSERTS supports opcode matching on
78 the C-BOX transaction type. To use this feature, first an opcode match‐
79 ing umask must be selected, e.g., MISS_OPCODE. Second, the opcode to
80 match on must be selected via a second umask among the OPC_* umasks.
81 For instance, UNC_C_TOR_INSERTS:OPCODE:OPC_RFO, counts the number of
82 TOR insertions for RFO transactions.
83
84 Opcode matching may be combined with node filtering with certain
85 umasks. In general, the filtering support is encoded into the umask
86 name, e.g., NID_OPCODE supports both node and opcode filtering. For
87 instance, UNC_C_TOR_INSERTS:NID_OPCODE:OPC_RFO:nf=1.
88
89
91 Stephane Eranian <eranian@gmail.com>
92
93
94
95 June, 2017 LIBPFM(3)