Information on how the gnuplots were created

cpulist
The cpulist graph comes from gnuplot. The input data is a CSV file that has sampled /proc/stat at regular interval (default once per second) to tally the increase in the counters for the “cpu*” line that increment for user-time, system-time, etc as described here. This graph plots all of the cores together on one graph. Graphs are also generated for each core by itself, though I don’t typically post these to the web pages.

topdownall
Topdown analysis was developed by Intel. At the first level, it breaks down the total available slots into the following hierarchy:

Are uops issued?
   - If yes, then are they retired?
        If yes ==> retiring
        If no  ==> bad speculation
   - If no, then is there an allocation stall?
        If yes ==> front end stall
        If no ==> back end stall

The percentages in these four buckets (retiring,speculation,front end,back end) give clues for investigating next level for performance issues.

The topdownall graph comes from gnuplot. The input data is a CSV file sampled from performance counters at a regular interval (default once per second) to tally the increase in counters. Graphs are also generated for each core by itself, though I don’t typically post these to the web pages.

topdownmemall
Topdown analysis was developed by Intel. This graph is a second-level analysis for backend issues. It shows the following hierarchy for backend stalls

Is the execution stalled?
   - If no, then productive cycles
   - If yes, then is there an outstanding L1d?
        If no ==> other stalls
        If yes (memory stall); 
           Is the store buffer full?
              If yes ==> store stalls
           Is the L1d fill buffer full or the offcore requests buffer full?
              If yes ==> read bandwidth stalls
              If no ==> read latency stalls

Separating stalls into memory vs. other; read vs. write; bandwidth vs. latency gives clues for investigating next level for performance issues.

The topdownmemall graph comes from gnuplot. The input data is a CSV file sampled from performance counters at a regular interval (default once per second) to tally the increase in counters. Graphs are also generated for each core by itself, though I don’t typically post these to the web pages.