Running Windows CPU profiler

Questions about Wine on Linux
Locked
LtChambers
Newbie
Newbie
Posts: 2
Joined: Tue Jun 11, 2019 8:56 am

Running Windows CPU profiler

Post by LtChambers »

I'm trying to determine why my scientific application performs better on Windows than on Wine for one type of data. I typically run Wine in console-mode only, but to try to understand what was going wrong with my profilers I've tried it on a new Ubuntu Desktop 19.04 VM. (note that I first observed the performance penalty when running "native" Linux on AWS).

Wine version: 4.0 (Ubuntu 4.0-1)

The wineprefix is fresh after install except using winetricks to install dotnet472.

I've tried to get many different Windows profilers to work but have yet to succeed.

When I try to run the installer for AMD uProf, it fails when trying to install the Debugger Tools for x64. When I try to install those manually with the Windows 10 SDK, it doesn't get past the installer's splash screen. When I copy the uProf binaries from a Windows machine and run them, it gives:
wine AMDuProf/bin/AMDuProfCLI collect -o wine z:/data/msvc-debug-x86_64/msbenchmark.exe spectra binary e:\test\thermo\QE_DDA\20130311_DDA_Pit01.raw

Error: Failed to load driver.
If you have recently upgraded or installed AMD uProf, please reboot and try again.
Trying to open the driver (C:\windows\system32\drivers\AMDPc) returned error 2.
Error: Configuration failed 0x80070006
Trying to open the driver (C:\windows\system32\drivers\AMDPc) returned error 2.
When I try to run the installer for VSPerfCollectionTools, it seems to work. But when I run VSPerfCmd, it gives:
wine VSPerfCmd /admin:security /admin:driver,start /start:sample /output:wine.vsp /launch:msbenchmark /args:"spectra binary /data/test/Thermo/QE_DDA/20130311_DDA_Pit01.raw"

0012:err:module:import_dll Library mscoree.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorsvw.exe") not found
0012:err:module:attach_dlls Importing dlls for L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorsvw.exe" failed, status c0000135
000f:err:service:process_send_command service protocol error - failed to write pipe!
0014:err:module:import_dll Library mscoree.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found
0014:err:module:attach_dlls Importing dlls for L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe" failed, status c0000135
000f:err:service:process_send_command service protocol error - failed to write pipe!
Microsoft (R) VSPerf Command Version 15.0.28307 x64
Copyright (C) Microsoft Corp. All rights reserved.


0039:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\VSPerfDrv150": c0000002
0018:err:service:process_send_command service protocol error - failed to write pipe!
Error VSP1398: The monitor was unable to start the VS performance driver. Invalid function. Consider using the /Admin:Driver,Start and /Admin:Security options of VSPerfCmd from an elevated environment. Profiling cannot continue.
Error VSP1341: Could not start logging engine. Shutting down.
Error VSP1394: Could not start profile monitor
DotTrace command-line won't work, even though .NET is installed and working (my app uses .NET, although it's mixed mode rather than pure IL):
wine JetBrains.dotTrace.CommandLineTools.2019.1.2/ConsoleProfiler.exe /?
0012:err:module:import_dll Library mscoree.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe") not found
0012:err:module:attach_dlls Importing dlls for L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\mscorsvw.exe" failed, status c0000135
000f:err:service:process_send_command service protocol error - failed to write pipe!
0009:err:module:fixup_imports_ilonly mscoree.dll not found, IL-only binary L"ConsoleProfiler.exe" cannot be loaded
0009:err:module:attach_dlls Importing dlls for L"Z:\\data\\test\\Thermo\\QE_DDA\\JetBrains.dotTrace.CommandLineTools.2019.1.2\\ConsoleProfiler.exe" failed, status c0000135
Does anybody know of a working profiler to run under Wine? Or can I run wine under a Linux profiler and somehow have it resolve the .NET/MSVC symbols?
User avatar
DarkShadow44
Level 8
Level 8
Posts: 1207
Joined: Tue Nov 22, 2016 5:39 pm

Re: Running Windows CPU profiler

Post by DarkShadow44 »

When mscoree is not found, your WINEPREFIX is messed up - you need either wine-mono or native .NET.
That said, the application you're trying to run is talking about drivers, and trying to sue drivers in wine is... daring.
LtChambers
Newbie
Newbie
Posts: 2
Joined: Tue Jun 11, 2019 8:56 am

Re: Running Windows CPU profiler

Post by LtChambers »

It's native .NET and the .NET works because my mixed mode (C++ and .NET) application works fine. It's just quite a lot slower for one type of data (which uses a vendor .NET DLL) than it is for other types of data (some of which ALSO use .NET DLLs!). Yes I know drivers are trouble on Wine but can anyone suggest a profiler that DOES work with Wine and MSVC symbols?
Locked