Community
cancel
Showing results for 
Search instead for 
Did you mean: 
ericrobert
Beginner
80 Views

CPU_CLK_UNHALTED

Hello,

Id like to know what could explain the difference between CPU_CLK_UNHALTED.REF and CPU_CLK_UNHALTED.THREAD. Currently, there is a 1.5 factor between both clock. Note that I use a dual xeon W5580 and that I disabled HyperThreading and TurboBoost.

Thanks!

ric

0 Kudos
4 Replies
Maxim_L_Intel1
Employee
80 Views

Hi Eric -

CPU_CLK_UNHALTED.REF counts bus cycles multiplied by the standard frequency multiplier for the particular CPU (i.e. highest non-Turbo), this is similar to what TSC counter (readable by RDTSC instruction) count except that .REFdoes not count cycles when in halt state, it allows cycle accounting uniform in time.

CPU_CLK_UNHALTED.THREAD shows real cycles CPU's hyper-thread spent,it followsactual CPU's frequency, and other than Turbo there is alsoEIST (lowering frequency when idling) will make it different from .REF.

Regrads,
-Max
ericrobert
Beginner
80 Views

Hi Max,

So, the difference between both clocks should be caused by the thread being idle? What can be the cause for idling? The thread is executing heavy computation in a tight loop and taking a full CPU HyperThreading is disabled. Can stalls (like L1I_MISS or ILD_STALL) be causing that?

I still dont understand why, when I perform a 20s system wide analysis in VTune, the total for CPU_CLK_UNHALTED.THREAD is 63G cycles. At 3.2Ghz, thats pretty close to 20s. But the total for CPU_CLK_UNHALTED.REF is 104G i.e. closer to 32s.

Thanks again!

ric

Thomas_W_Intel
Employee
80 Views

ric,

how does the overtime view look like in VTune? Are all the clockticks attributed to 1 core and 1 thread?

Kind regards
Thomas

ericrobert
Beginner
80 Views

Hi Thomas,

Im not exactly sure where is the over time view in VTune Amplifier XE 2011... The graph under the result grid shows that all clock ticks are attributed to only one thread. The core should be fully used only by that thread. I am using a real-time version of Linux that is supposed to guarantee that the core is used exclusively by myprocess/thread to minimize jitter. Can I use VTune to confirm this?

Thanks for your time.

ric

Reply