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

What is the C0-C7 core meaning?


 Hi all:

      What is the C0-7 core meaning captured by PCM? Do these indicate the core status? Can you give more explanation about thest?


Instructions retired: 1125 G ; Active cycles: 2459 G ; Time (TSC):   11 Gticks ; C0 (active,non-halted) core residency: 98.42 %

 C1 core residency: 1.58 %; C3 core residency: 0.00 %; C6 core residency: 0.00 %; C7 core residency: 0.00 %;
 C2 package residency: 0.00 %; C3 package residency: 0.00 %; C6 package residency: 0.00 %; C7 package residency: 0.00 %;




0 Kudos
1 Reply
Black Belt

These "C states" are related to (but not identical to) the ACPI power management states discussed at and in Section 14.6 of Volume 3 of the Intel Architectures SW Developer's Manual (document 325384-059).

A recent introduction to the topic is available at -- this article has links to a number of additional useful discussions.

The short answer is:

  • The "Core C0" state is the core state in which a processor core is executing instructions.  All of the higher-numbered Core C-states are idle states.  (In this case "idle" means that the OS does not have a process to assign to run on the core, so it deliberately puts the core into a "halt" state.)  In general, higher numbers mean lower power consumption, but also require a longer latency to re-activate. 
  • The "Package C0" state is used when at least one core is operational (i.e., in the Core C0 state).   All of the higher-numbered Package C-states represent periods in which none of the cores is in the Core C0 state.  Again (in general), higher numbers mean lower power consumption, but also require a longer latency to re-activate.

The results above are typically of a fully active system, with the cores active 98.42% of the time, and in the C1 halt state 1.58% of the time.  Because the cores are (almost) always busy, there is no use of the higher Package C-states during this period -- i.e., the system was in Package C0 state 100% of the time, but the output does not include that explicitly.