Uncore Manual
Reference Number: 329468-002 15
Uncore Performance Monitoring
Uncore Per-Socket Performance Monitoring Control
CHAPTER 2UNCORE PERFORMANCE MONITORING
2.1 UNCORE PER-SOCKET PERFORMANCE MONITORING CONTROL
To manage the large number of counter registers distributed across many units and collect event data
efficiently, this section describes the hierarchical technique to start/stop/restart event counting that
a software agent may need to perform during a monitoring session.
2.1.1 Counter Overflow
If a box’s counter overflows, it can send an overflow message to a global PMON manager (the UBox).
To do so, the box with the overflowing counter must be allowed to broadcast an overflow message
(the .ov_en in the individual counter’s control register must be set to 1). The overflow will then be
picked up and the box sending the overflow will be recorded in the UBox.
Each box in the uncore with performance monitors may be configured to respond to this overflow with
two basic actions:
2.1.1.1 Freezing on Counter Overflow
Upon receipt of an overflow message from any box, the UBox will assert the global freeze signal. Once
the global freeze has been detected, each box will disable (or ‘freeze’) all of its counters.
NOTE: the box containing the overflowing counter will be frozen first and there will a some delay
before each of the other boxes receives the overflow message.
2.1.1.2 PMI on Counter Overflow
Upon receipt of the overflow message, the UBox can send a PMI signal to the core executing the
monitoring software. To do so, the U_MSR_PMON_GLOBAL_CTL.pmi_core_sel file must be set to
point to the core the monitoring software is executing on.
2.1.2 Setting up a Monitoring Session
On HW reset, all the counters are disabled. Enabling is hierarchical. So the following steps, which
include programming the event control registers and enabling the counters to begin collecting events,
must be taken to set up a monitoring session. Section 2.1.3 covers the steps to stop/re-start counter
registers during a monitoring session.
Global Settings in the UBox: (NOTE: Necessary for U-Box monitoring).
a) Freeze all the uncore counters by setting U_MSR_PMON_GLOBAL_CTL.frz_all to 1
OR (if box level freeze control preferred):
a) Freeze the box’s counters while setting up the monitoring session.
e.g., set Cn_MSR_PMON_BOX_CTL.frz to 1
For each event to be measured within each box:
b) Enable counting for each monitor