Uncore Manual
Reference Number: 329468-002 147
Uncore Performance Monitoring
Intel® QPI Link Layer Performance Monitoring
RxL_CYCLES_NE
• Title: RxQ Cycles Not Empty
• Category: RXQ Events
• Event Code: 0x0a
• Max. Inc/Cyc:. 1, Register Restrictions: 0-3
• Definition: Counts the number of cycles that the QPI RxQ was not empty. 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 Accu-
mulator event to calculate the average occupancy.
RxL_FLITS_G0
• Title: Flits Received - Group 0
• Category: FLITS_RX Events
• Event Code: 0x01
• Max. Inc/Cyc:. 2, Register Restrictions: 0-3
• Definition: Counts the number of flits received from the QPI Link. It includes filters for Idle, pro-
tocol, and Data Flits. 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 (for L0) or 4B instead of 8B for
L0p.
Table 2-142. Unit Masks for RxL_FLITS_G0
Extension
umask
[15:8]
Description
IDLE b00000001 Idle and Null Flits
Number of flits received over QPI that do not hold protocol
payload. When QPI is not in a power saving state, it
continuously transmits flits across the link. When there are no
protocol flits to send, it will send IDLE and NULL flits across.
These flits sometimes do carry a payload, such as credit returns,
but are general not considered part of the QPI bandwidth.
DATA b00000010 Data Tx Flits
Number of data flits received over QPI. Each flit contains 64b of
data. This includes both DRS and NCB data flits (coherent and
non-coherent). This can be used to calculate the data bandwidth
of the QPI link. One can get a good picture of the QPI-link
characteristics by evaluating the protocol flits, data flits, and
idle/null flits. This does not include the header flits that go in
data packets.
NON_DATA b00000100 Non-Data protocol Tx Flits
Number of non-NULL non-data flits received across QPI. This
basically tracks the protocol overhead on the QPI link. One can
get a good picture of the QPI-link characteristics by evaluating
the protocol flits, data flits, and idle/null flits. This includes the
header flits for data packets.