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

INTEL PCM -- Problems starting service

leslie_g
Beginner
1,121 Views

I've built the components necessary to run and , but I'm having (different) issues with both. By way of background, I am running 64-bit Windows 7, and using WinRing0 from open-hardware-monitor v0.2.1 (so I have not personally built this component). The WinRing0* files have been copied to <>. All operations are run with administrator privilege.

works in that it can successfully access MSR values. But when I start it, it reports error 2 very early on. Sample (truncated) output is as follows:

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

Copyright (c) 2009-2012 Intel Corporation

Starting MSR service failed with error 2
Trying to load winring0.dll/winring0.sys driver...
Using winring0.dll/winring0.sys driver.

Num (logical) cores: 4
Num sockets: 1
Threads per core: 2
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Nominal core frequency: 2666666660 Hz

Detected processor(s) with Intel microarchitecture codename Westmere/Clarkdale

The second issue is that attempting to start the PCM service directly fails with the following output:

The Intel Performance Counter Monitor Service service is starting.
The Intel Performance Counter Monitor Service service could not be started.

A system error has occurred.

The requested service has already been started.

From the Windows system event log, the error is:

The Intel Performance Counter Monitor Service service terminated with the following error: 526470

From the Windows application event log, the sequence reported is:

Trying to create the measure thread...

Monitor Instance could not be created

By adding additional event tracing information, it appears that the call in is failing.

Any assistance you can provide on these two issues would be much appreciated. Thanks.

Leslie

0 Kudos
6 Replies
Roman_D_Intel
Employee
1,121 Views
Leslie,

you can ignore the "Starting MSR service failed with error 2" message because it is trying to start the alternative msr.sys driver which you don't have but you use winring0 driver which is a replacement for it (should be ok).

As for the service start error pleasemake surethe pcm.exe utility is not running in parallel and try to install AND start service as administrator again. Did it work?

Thanks,
Roman
0 Kudos
leslie_g
Beginner
1,121 Views
Hi, Roman. I'm always impressed at how quickly you respond to everyone's queries--must get in the way of doing any real work! But a sincere thanks for all the effort you put into this and other forums.

OK regarding ignoring the error from . It appeared to be benign, and obviously the access was succeeding.

I uninstalled pcmservice (via ), and then reinstalled it (via ). Both operations appeared to work correctly (no errors, and the log file is as expected). However, gives the same error as before. All of this was done with administrator privilege and without the utility's being active. It's as if the service can't find a driver to handle the RDMSR request.

Leslie
0 Kudos
Roman_D_Intel
Employee
1,121 Views
Leslie,

it seems we have an error in the WINDOWS_HOWTO documentation. The Winring driver files have to be copied into the directory where the PCM-Service.exe is located. This should solve your problem. Let us know if it helped or not.

Thanks,
Roman
0 Kudos
leslie_g
Beginner
1,121 Views

Roman,

Thanks, that does indeed fix the problem, and now the service starts properly.

I have one other question that more relates to understanding the instruction count values I'm seeing. In a benchmark I'm running, I'm testing a couple of different scenarios under controlled conditions. Both scenarios perform much the same instruction mixture.

Inone scenario, I have numbers like this (from a typical one-second interval sampled by ):

EXEC IPC FREQ AFREQ L3MISS L2MISS L3HIT L2HIT L3CLK L2CLK
0.167 0.264 0.633 1.17 7.02 17.2 0.593 0.0734 0.194 0.0573

INST ACYC TIME PhysIPC PhysIPC% INSTnom INSTnom%
1720 6520 2570 0.528 13.2 0.334 8.36

In another, I get numbers like this:

EXEC IPC FREQ AFREQ L3MISS L2MISS L3HIT L2HIT L3CLK L2CLK
0.022 0.0343 0.642 1.19 7.72 10.2 0.244 0.0412 0.212 0.0152

INST ACYC TIME PhysIPC PhysIPC% INSTnom INSTnom%
225 6560 2550 0.0685 1.71 0.044 1.1

Obviously, the first scenario is running much more efficiently, but the cache hit numbers alone don't seem to explain it. What else is a likely reason for such a large discrepancy in the retired instruction counts?

Leslie

0 Kudos
leslie_g
Beginner
1,121 Views

Roman,

Thanks, that does indeed fix the problem, and now the service starts properly.

I have one other question that more relates to understanding the instruction count values I'm seeing. In a benchmark I'm running, I'm testing a couple of different scenarios under controlled conditions. Both scenarios perform much the same instruction mixture.

Inone scenario, I have numbers like this (from a typical one-second interval sampled by ):

EXEC IPC FREQ AFREQ L3MISS L2MISS L3HIT L2HIT L3CLK L2CLK
0.167 0.264 0.633 1.17 7.02 17.2 0.593 0.0734 0.194 0.0573

INST ACYC TIME PhysIPC PhysIPC% INSTnom INSTnom%
1720 6520 2570 0.528 13.2 0.334 8.36

In another, I get numbers like this:

EXEC IPC FREQ AFREQ L3MISS L2MISS L3HIT L2HIT L3CLK L2CLK
0.022 0.0343 0.642 1.19 7.72 10.2 0.244 0.0412 0.212 0.0152

INST ACYC TIME PhysIPC PhysIPC% INSTnom INSTnom%
225 6560 2550 0.0685 1.71 0.044 1.1

Obviously, the first scenario is running much more efficiently, but the cache hit numbers alone don't seem to explain it. What else is a likely reason for such a large discrepancy in the retired instruction counts?

Leslie

0 Kudos
Thomas_W_Intel
Employee
1,121 Views
Leslie,

unfortunately, there are many possible reasons that can cause a decrase of the IPC. Cache misses are typically the most prominent one and therefore they are reported in PCM. Other possibilities are branch mispredicts, DTLB misses, icache misses, FP denormals,... The list goes on.

My suggestion is that you try a profiler like Intel VTune Amplifier XE. In contrast to Intel PCM, VTune allows you identify the code line (or assembly instruction) where the performance issue is happening. Furthermore, it is easier than in PCM to change the event that you want to examine.

Kind regards
Thomas
0 Kudos
Reply