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

PCM on Atom

maru2012
Beginner
1,694 Views
Hello,
I have tried using PCM on linux, but when run it only shows the following: (sudo ./pcm.x 5)

Intel Performance Counter Monitor V2.1 (2012-05-31 14:40:57 +0200 ID=2d18fd5)

Copyright (c) 2009-2012 Intel Corporation

Num (logical) cores: 2
Num sockets: 1
Threads per core: 2
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 2
Width of generic (programmable) counters: 40 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 40 bits
Nominal core frequency: 0 Hz
Number of PCM instances: 10

Detected processor(s) with Intel microarchitecture codename Atom

And it ends, without displaying counter data.
Can you help me? please. What should I do? or what is the error?


Thank you,
regards.
0 Kudos
1 Solution
Thomas_W_Intel
Employee
1,694 Views

My suggestion was that you directlyhard-code the frequency of your processor as a constant value. This way, you could verify if this is the only issue that you have.

For reproducing the issue internally, can you tell us what type of Atom you are using?

View solution in original post

0 Kudos
11 Replies
Thomas_W_Intel
Employee
1,694 Views
Nominal core frequency: 0 Hz

looks suspicious. I don't know why ths would fail, but maybe you can hardcode this in your program for testing purposes. It is computed in line 688 in cpucounterstest.cpp

And try to delete all the semaphores from PCM instances that were not running successfully.
0 Kudos
maru2012
Beginner
1,694 Views
Thank you for your response,

I've looked in line 688 in cpucounters.cpp, the computation performed ((freq >> 8) & 255) always returns 0 (ie, the second byte is zero). Whereby the frequency is 0 Hz. What should I do?
0 Kudos
Thomas_W_Intel
Employee
1,695 Views

My suggestion was that you directlyhard-code the frequency of your processor as a constant value. This way, you could verify if this is the only issue that you have.

For reproducing the issue internally, can you tell us what type of Atom you are using?

0 Kudos
maru2012
Beginner
1,694 Views
I'm sorry, I had not understood.

I changed the frencuencia to: 1660000000 in Hz, but the result was:

*****************************************************************************************************
Intel Performance Counter Monitor V2.1 (2012-05-31 14:40:57 +0200 ID=2d18fd5)

Copyright (c) 2009-2012 Intel Corporation

Num (logical) cores: 2
Num sockets: 1
Threads per core: 2
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 2
Width of generic (programmable) counters: 40 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 40 bits
Nominal core frequency: 1667000 Hz
Number of PCM instances: 8

Detected processor(s) with Intel microarchitecture codename Atom

EXEC : instructions per nominal CPU cycle
IPC : instructions per CPU cycle
FREQ : relation to nominal CPU frequency='unhalted clock ticks'/'invariant timer ticks' (includes Intel Turbo Boost)
L2MISS: L2 cache misses
L2HIT : L2 cache hit ratio (0.00-1.00)
TEMP : Temperature reading in 1 degree Celsius relative to the TjMax temperature (thermal headroom): 0 corresponds to the max temperature


Core (SKT) | EXEC | IPC | FREQ | L2MISS | L2HIT | TEMP

0 0 0.00 -1.00 0.00 0 1.00 44
1 0 0.00 -1.00 0.00 0 1.00 44
-------------------------------------------------------------------------------------------------------------------
SKT 0 0.00 -1.00 0.00 -1.00 0 0 -1.00 1.00 -1.00 -1.00 0.00 0.00 N/A
-------------------------------------------------------------------------------------------------------------------
TOTAL * 0.00 -1.00 0.00 0 1.00 N/A

Instructions retired: 0 ; Active cycles: 0 ; Time (TSC): 943 Mticks ; C0 (active,non-halted) core residency: 0.00 %

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 %

PHYSICAL CORE IPC : -1.00 => corresponds to -50.00 % utilization for cores in active state
Instructions per nominal CPU cycle: 0.00 => corresponds to 0.00 % core utilization over time interval


*****************************************************************************************************

Then,I changed it to: 1667000 (in / sys/devices/system/cpu/cpu0/cpufreq/scaling_availables_frequencies) kHz, and got:

*****************************************************************************************************

Intel Performance Counter Monitor V2.1 (2012-05-31 14:40:57 +0200 ID=2d18fd5)

Copyright (c) 2009-2012 Intel Corporation

Num (logical) cores: 2
Num sockets: 1
Threads per core: 2
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 2
Width of generic (programmable) counters: 40 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 40 bits
Nominal core frequency: 1660000000 Hz
Number of PCM instances: 8

Detected processor(s) with Intel microarchitecture codename Atom

EXEC : instructions per nominal CPU cycle
IPC : instructions per CPU cycle
FREQ : relation to nominal CPU frequency='unhalted clock ticks'/'invariant timer ticks' (includes Intel Turbo Boost)
L2MISS: L2 cache misses
L2HIT : L2 cache hit ratio (0.00-1.00)
TEMP : Temperature reading in 1 degree Celsius relative to the TjMax temperature (thermal headroom): 0 corresponds to the max temperature


Core (SKT) | EXEC | IPC | FREQ | L2MISS | L2HIT | TEMP

0 0 0.00 -1.00 0.00 0 1.00 43
1 0 0.00 -1.00 0.00 0 1.00 43
-------------------------------------------------------------------------------------------------------------------
SKT 0 0.00 -1.00 0.00 -1.00 0 0 -1.00 1.00 -1.00 -1.00 0.00 0.00 N/A
-------------------------------------------------------------------------------------------------------------------
TOTAL * 0.00 -1.00 0.00 0 1.00 N/A

Instructions retired: 0 ; Active cycles: 0 ; Time (TSC): 1688 Mticks ; C0 (active,non-halted) core residency: 0.00 %

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 %

PHYSICAL CORE IPC : -1.00 => corresponds to -50.00 % utilization for cores in active state
Instructions per nominal CPU cycle: 0.00 => corresponds to 0.00 % core utilization over time interval

*****************************************************************************************************
The results are not expected. What does this mean? I am using Atom N450.
Thank you!
0 Kudos
maru2012
Beginner
1,694 Views
Hello,

Again I ran pcm.x and, this time, it gave acceptable values.
I have not modified it from the last time, but now it worked
(only I adjusted the nominal core frequency).

****************
Core (SKT) | EXEC | IPC | FREQ | L2MISS | L2HIT | TEMP

0 0 0.06 0.13 0.42 309 K 0.78 49
1 0 0.09 0.21 0.42 396 K 0.80 49
-------------------------------------------------------------------------------------------------------------------
SKT 0 0.07 0.17 0.42 0.65 0 705 K -1.00 0.80 -1.00 -1.00 0.00 0.00 N/A
-------------------------------------------------------------------------------------------------------------------
TOTAL * 0.07 0.17 0.42 705 K 0.80 N/A

Instructions retired: 78 M ; Active cycles: 460 M ; Time (TSC): 545 Mticks ; C0 (active,non-halted) core residency: 65.06 %

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 %

PHYSICAL CORE IPC : 0.34 => corresponds to 17.06 % utilization for cores in active state
Instructions per nominal CPU cycle: 0.14 => corresponds to 7.20 % core utilization over time interval

****************

Thank you very much for your help.
Greetings.
0 Kudos
Roman_D_Intel
Employee
1,694 Views
Hi Maru,

thank youfor your feedback. We have reproduced the issue internally and will provide a fix in the next PCM update. Till then please use the workaround suggested by Thomas.

Thank you
Roman
0 Kudos
maru2012
Beginner
1,694 Views
Hi
One question, I am working with frequency scaling, and I will need to use the metric EXEC.
If I directly hard-code the nominal frequency, the EXEC values are correct ? (assuming you, can change the frequency).
Thank you
Maru.
0 Kudos
Thomas_W_Intel
Employee
1,694 Views
The EXEC metric is not affected by hard-coding the nominal frequency. It simply returns the ratio of instructions retired versus invariant timer clocks. In particular, thenominal frequency is not part of this equation.
0 Kudos
maru2012
Beginner
1,694 Views
Great!
Thanks for your reply.
Greetings.
0 Kudos
Roman_D_Intel
Employee
1,694 Views
we have just found out that the invariant timer clock function is not working on Atom when CPU is in a power saving C states. This makes EXEC metric output wrong values in such case. In the next PCM version we will provide a workaround for it.

for now you can computethe EXEC metric (getExec(a,b)) as

getInstructionsRetired(a,b)/(time_in_seconds*m->getNominalFrequency())

Thanks,
Roman
0 Kudos
Roman_D_Intel
Employee
1,694 Views
this should be fixed in the recent Intel PCM "V2.2" release.
thanks,
Roman
0 Kudos
Reply