Provided by: libpfm4-dev_4.12.1+git12-g678bca9-1_amd64 bug

NAME

       libpfm_intel_bdx_unc_cbo - support for Intel Broadwell Server C-Box uncore PMU

SYNOPSIS

       #include <perfmon/pfmlib.h>

       PMU name: bdx_unc_cbo[0-21]
       PMU desc: Intel Broadwell Server C-Box uncore PMU

DESCRIPTION

       The library supports the Intel Broadwell Server C-Box (coherency engine) uncore PMU.  This
       PMU model exists on various Broadwell server models (79, 86) . There is one C-box PMU  per
       physical core. Therefore there are up to twenty-one identical C-Box PMU instances numbered
       from 0 to 21. On dual-socket systems, the number refers to the C-Box  PMU  on  the  socket
       where the program runs. For instance, if running on CPU18, then bdx_unc_cbo0 refers to the
       C-Box for physical core 0 on socket 1. Conversely, if  running  on  CPU0,  then  the  same
       bdx_unc_cbo0 refers to the C-Box for physical core 0 but on socket 0.

       Each  C-Box  PMU  implements  4  generic  counters and two filter registers used only with
       certain events and umasks.

MODIFIERS

       The following modifiers are supported on Intel Broadwell C-Box uncore PMU:

       e      Enable edge detection, i.e., count only when there is a state  transition  from  no
              occurrence  of the event to at least one occurrence. This modifier must be combined
              with a threshold modifier (t) with a value greater or equal  to  one.   This  is  a
              boolean modifier.

       t      Set  the  threshold  value.  When  set  to a non-zero value, the counter counts the
              number of C-Box cycles in which the number of occurrences of the event  is  greater
              or  equal  to  the threshold.  This is an integer modifier with values in the range
              [0:255].

       nf     Node filter. Certain events, such as UNC_C_LLC_LOOKUP, UNC_C_LLC_VICTIMS, provide a
              NID  umask.   Sometimes the NID is combined with other filtering capabilities, such
              as opcodes.  The node filter is an 8-bit max  bitmask.  A  node  corresponds  to  a
              processor  socket.  The  legal  values  therefore depend on the underlying hardware
              configuration. For dual-socket systems, the bitmask has two valid bits [0:1].

       cf     Core Filter. This is a 5-bit filter which is used to filter based on physical  core
              origin  of  the  C-Box  request.  Possible  values  are  0-63. If the filter is not
              specified, then no filtering takes place. Bit  0-3 indicate  the physical  core  id
              and bit 4 filters on non thread-related data.

       tf     Thread  Filter. This is a 1-bit filter which is used to filter C-Box requests based
              on logical processor (hyper-thread) identification. Possibles values  are  0-1.  If
              the filter is not specified, then no filtering takes place.

       nc     Non-Coherent.  This  is  a 1-bit filter which is used to filter C-Box requests only
              for the TOR_INSERTS and TOR_OCCUPANCY umasks  using  the  OPCODE  matcher.  If  the
              filter is not specified, then no filtering takes place.

       isoc   Isochronous. This is a 1-bit filter which is used to filter C-Box requests only for
              the TOR_INSERTS and TOR_OCCUPANCY umasks using the OPCODE matcher. If the filter is
              not specified, then no filtering takes place.

Opcode filtering

       Certain   events,  such  as  UNC_C_TOR_INSERTS  supports  opcode  matching  on  the  C-BOX
       transaction type. To use this feature, first an opcode matching umask  must  be  selected,
       e.g.,  MISS_OPCODE.   Second,  the  opcode to match on must be selected via a second umask
       among the OPC_* umasks.  For instance, UNC_C_TOR_INSERTS:OPCODE:OPC_RFO, counts the number
       of TOR insertions for RFO transactions.

       Opcode  matching  may be combined with node filtering with certain umasks. In general, the
       filtering support is encoded into the umask name, e.g., NID_OPCODE supports both node  and
       opcode filtering. For instance, UNC_C_TOR_INSERTS:NID_OPCODE:OPC_RFO:nf=1.

AUTHORS

       Stephane Eranian <eranian@gmail.com>

                                            June, 2017                                  LIBPFM(3)