libpfm_intel_hswep_unc_cbo(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | MODIFIERS | Opcode filtering | AUTHORS | COLOPHON

LIBPFM(3)               Linux Programmer's Manual              LIBPFM(3)

NAME         top

       libpfm_intel_hswep_unc_cbo - support for Intel Haswell-EP C-Box
       uncore PMU

SYNOPSIS         top

       #include <perfmon/pfmlib.h>

       PMU name: hswep_unc_cbo[0-17]
       PMU desc: Intel Haswell-EP C-Box uncore PMU

DESCRIPTION         top

       The library supports the Intel Haswell C-Box (coherency engine)
       uncore PMU.  This PMU model only exists on Haswell model 63.
       There is one C-box PMU per physical core. Therefore there are up
       to eighteen identical C-Box PMU instances numbered from 0 to 17.
       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 hswep_unc_cbo0 refers to the C-Box for physical core 0 on
       socket 1. Conversely, if running on CPU0, then the same
       hswep_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         top

       The following modifiers are supported on Intel Haswell 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         top

       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         top

       Stephane Eranian <eranian@gmail.com>

COLOPHON         top

       This page is part of the perfmon2 (a performance monitoring
       library) project.  Information about the project can be found at
       ⟨http://perfmon2.sourceforge.net/⟩.  If you have a bug report for
       this manual page, send it to
       perfmon2-devel@lists.sourceforge.net.  This page was obtained
       from the project's upstream Git repository
       ⟨git://git.code.sf.net/p/perfmon2/libpfm4 perfmon2-libpfm4⟩ on
       2021-08-27.  (At that time, the date of the most recent commit
       that was found in the repository was 2021-08-04.)  If you
       discover any rendering problems in this HTML version of the page,
       or you believe there is a better or more up-to-date source for
       the page, or you have corrections or improvements to the
       information in this COLOPHON (which is not part of the original
       manual page), send a mail to man-pages@man7.org

                                May, 2015                      LIBPFM(3)