- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I encounter the following error when I compile IntelPerformanceCounterMonitorV2.8 using Visual Studio 2013.
1>------ Build started: Project: PCM-Service, Configuration: Release Win32 ------
1> utils.cpp
1>c:\intelperformancecountermonitorv2.8\utils.h(60): error C3861: 'YieldProcessor': identifier not found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Has anyone encountered this issue?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don’t know why, but it looks like Microsoft dropped YieldProcessor with Windows 8. Replacing it with _mm_pause solves the issue. Unfortunately, this fix did not make it in the latest release.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It seems like #include header issue.Check if Winnt.h header file is #included.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Actually you may check utils.h header file and see if it file includes Winnt.h header file.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don’t know why, but it looks like Microsoft dropped YieldProcessor with Windows 8. Replacing it with _mm_pause solves the issue. Unfortunately, this fix did not make it in the latest release.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thomas
Thanks for the info.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
_mm_pause solved the issue. Thanks
I encounter another error when compiling the WinMSR driver
C:\IntelPerformanceCounterMonitorV2.8\WinMSRDriver\Win7>mymake.bat C:\IntelPerformanceCounterMonitorV2.8\WinMSRDriver\Win7>set BUILD_PATH= C:\IntelPerformanceCounterMonitorV2.8\WinMSRDriver\Win7>rmdir /S /Q objfre_win7_amd64 The system cannot find the file specified. C:\IntelPerformanceCounterMonitorV2.8\WinMSRDriver\Win7>nmake Microsoft (R) Program Maintenance Utility Version 12.00.21005.1 Copyright (C) Microsoft Corporation. All rights reserved. makefile(1) : fatal error U1052: file '\makefile.def' not found Stop.
Is this a known issue as well?
I feel that it would be simpler for users if Intel just shipped the binaries for this package. (atleast for Windows)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please consider Intel PCM as sample code for accessing the PMU, not as an Intel product. That's why it is distributed under a BSD-like license instead of binaries.
Building and signing the driver is probably the hardest part of compiling PCM. Is using the atlernative WinRing0 driver an option for you? There are binaries available for that on the net. See also the included WINDOWS_HOWTO.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Building and signing the driver is probably the hardest part of compiling PCM. Is using the atlernative WinRing0 driver an option for you?
I agree that driver signing can be an issue. But why does the driver project not compile? The WinRing0 works well and that is what I use. I still feel the binaries for the rest of the modules would help.
Below is an additional problem that arises. The Intelpcm.lib is not found in the expected location and it seems to be linked to compiling from within Visual Studio
1>------ Build started: Project: Intelpcm.dll, Configuration: Release Win32 ------ 1> dllmain.cpp 1> Creating library C:\IntelPerformanceCounterMonitorV2.8\PCM-Service_Win\Release\Intelpcm.lib and object C:\IntelPerformanceCounterMonitorV2.8\PCM-Service_Win\Release\Intelpcm.exp 1> Generating code 1> Finished generating code 1> Intelpcm.dll.vcxproj -> C:\IntelPerformanceCounterMonitorV2.8\PCM-Service_Win\Release\Intelpcm.dll.dll 2>------ Build started: Project: PCM-Service, Configuration: Release Win32 ------ 2>LINK : fatal error LNK1181: cannot open input file '..\intelpcm.dll\Release\Intelpcm.lib' ========== Build: 1 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========
By default build_all.bat builds in Debug|Win32 mode which does not work on some platforms for eg
C:\PCM-Service-v2.8>pcm.exe DEBUG: Setting Ctrl+C done. Intel(r) Performance Counter Monitor V2.8 (2014-12-18 12:52:39 +0100 ID=ba39a89) Copyright (c) 2009-2014 Intel Corporation Starting MSR service failed with error 2 The system cannot find the file specified. Trying to load winring0.dll/winring0.sys driver... Using winring0.dll/winring0.sys driver. Error in processor group size counting: 48!=32 Make sure your binary is compiled for 64-bit: using 'x64' platform configuration. Access to Intel(r) Performance Counter Monitor has denied (no MSR or PCI CFG space access). C:\PCM-Service-v2.8>
The batch file needs to be adapted to get the right binaries. Would you accept patches or setup a project on git-hub to faciliate contributions to make things better?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi kmathew,
Thanks for your feedback.
Did you start mymake.bat from WDK build environment ? (there is a special command line short-cut in WDK) Usually this error appears if WDK environment variables are not defined.
Intelpcm.lib should be compiled before PCM-Service that uses it (with the correct version Win32/x64, Debug/Release).
The next version of PCM will contain a build script for Windows that compiles all 64-bit x64 Windows binaries by default (it existed a while ago already).
Best regards,
Roman
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page