Uncore Manual
Reference Number: 329468-002 149
Uncore Performance Monitoring
Intel® QPI Link Layer Performance Monitoring
RxL_FLITS_G2
• Title: Flits Received - Group 2
• Category: FLITS_RX Events
• Event Code: 0x03
• Extra Select Bit: Y
• Max. Inc/Cyc:. 2, Register Restrictions: 0-3
• Definition: Counts the number of flits received from the QPI Link. This is one of three “groups”
that allow us to track flits. It includes filters for NDR, NCB, and NCS message classes. Each “flit” is
made up of 80 bits of information (in addition to some ECC data). In full-width (L0) mode, flits are
made up of four “fits”, each of which contains 20 bits of data (along with some additional ECC
data). In half-width (L0p) mode, the fits are only 10 bits, and therefore it takes twice as many
fits to transmit a flit. When one talks about QPI “speed” (for example, 8.0 GT/s), the “transfers”
here refer to “fits”. Therefore, in L0, the system will transfer 1 “flit” at the rate of 1/4th the QPI
speed. One can calculate the bandwidth of the link by taking: flits*80b/time. Note that this is not
the same as “data” bandwidth. For example, when we are transferring a 64B cacheline across QPI,
we will break it into 9 flits -- 1 with header information and 8 with 64 bits of actual “data” and an
additional 16 bits of other information. To calculate “data” bandwidth, one should therefore do:
data flits * 8B / time.
RxL_INSERTS
• Title: Rx Flit Buffer Allocations
• Category: RXQ Events
• Event Code: 0x08
• Max. Inc/Cyc:. 1, Register Restrictions: 0-3
• Definition: Number of allocations into the QPI Rx Flit Buffer. Generally, when data is transmitted
across QPI, it will bypass the RxQ and pass directly to the ring interface. If things back up getting
transmitted onto the ring, however, it may need to allocate into this buffer, thus increasing the
latency. This event can be used in conjunction with the Flit Buffer Occupancy event in order to cal-
culate the average flit buffer lifetime.
Table 2-144. Unit Masks for RxL_FLITS_G2
Extension
umask
[15:8]
Description
NDR_AD b00000001 Non-Data Response Rx Flits - AD
Counts the total number of flits received over the NDR (Non-
Data Response) channel. This channel is used to send a variety
of protocol flits including grants and completions. This is only for
NDR packets to the local socket which use the AK ring.
NDR_AK b00000010 Non-Data Response Rx Flits - AK
Counts the total number of flits received over the NDR (Non-
Data Response) channel. This channel is used to send a variety
of protocol flits including grants and completions. This is only for
NDR packets destined for Route-thru to a remote socket.
NCB_DATA b00000100 Non-Coherent data Rx Flits
Number of Non-Coherent Bypass data flits. These flits are
generally used to transmit non-coherent data across QPI. This
does not include a count of the DRS (coherent) data flits. This
only counts the data flits, not the NCB headers.
NCB_NONDATA b00001000 Non-Coherent non-data Rx Flits
Number of Non-Coherent Bypass non-data flits. These packets
are generally used to transmit non-coherent data across QPI,
and the flits counted here are for headers and other non-data
flits. This includes extended headers.
NCB b00001100 Non-Coherent Rx Flits
Number of Non-Coherent Bypass flits. These packets are
generally used to transmit non-coherent data across QPI.
NCS b00010000 Non-Coherent standard Rx Flits
Number of NCS (non-coherent standard) flits received over QPI.
This includes extended headers.