Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

Regarding Haswell uncore counters


Can anyone please explain what is the exact difference between TOR_INSERT and TOR_OCCUPANCY counters. Although I have read intel documentation I couldn't find an exact definition about these.

0 Kudos
1 Reply
New Contributor III

These events are defined in the uncore monitoring guide document of the processor of interest. The TOR_INSERT and TOR_OCCUPANCY events are defined as follows in the HSX uncore monitoring guide:

TOR_INSERT: Counts the number of entries successful inserted into the TOR that match qualifications specified by the subevent.

TOR_OCCUPANCY: For each cycle, this event accumulates the number of valid entries in the TOR that match qualifications specified by the subevent.

(Side note: Apparently there is no way to insert quotes in this forum, which is really annoying!)

For example, when a new request is inserted in a TOR that already has 5 pending requests, the following changes occur to the event counters:

  • The TOR_INSERT event counter is incremented by 1.
  • The TOR_OCCUPANCY event counter is incremented by 6 since the occupancy, or the number of TOR entries in use, is 6 in the current cycle.

If, in a given cycle, there are no new inserts, only the TOR_OCCUPANCY may be incremented according to the occupancy. The TOR_OCCUPANCY event occurs in every cycle in which the TOR is not empty while the TOR_INSERT event occurs only on successful insertions in the TOR.