Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)

Error: PMU resources are not available.

qually_j_
Beginner
5,231 Views

Intel VTune Amplifier XE 2013

Windows 8 64 bits. VS 2010 & VS 2012. IvyBridge, i7, GT2.

when I try to run bandwidth - Sandy Bridge / Ivy Bridge analysis, I get this error:

Error: PMU resources are not available. Hardware Event-based Sampling is not supported on this operating system.

Then I checked driver status - here's what I got. In admin commandline of coz.

C:\Program Files (x86)\Intel\VTune Amplifier XE 2013\bin32>amplxe-sepreg -c
Checking platform...
Platform is genuine Intel: OK
Platform has SSE2: OK
Platform architecture: INTEL64
User has admin rights: OK
Drivers will be installed to C:\Windows\System32\Drivers\
Checking sepdrv3_10 driver path...OK
Checking sepdrv3_10 service...
Driver status: the sepdrv3_10 service is running
Checking sepdal driver path...OK
Checking sepdal service...
Driver status: the sepdal service is running

C:\Program Files (x86)\Intel\VTune Amplifier XE 2013\bin32>amplxe-sepreg -i -v

Stopping service sepdrv3_10...OK
Copying file C:\Program Files (x86)\Intel\VTune Amplifier XE 2013\bin64\sepdrv\w
in7\sepdrv3_10.sys to C:\Windows\System32\Drivers\sepdrv3_10.sys...OK
Installing service sepdrv3_10...OK
Warning: service sepdrv3_10 already exists
Starting service sepdrv3_10...OK
Writing startup key to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sepdrv3_10...OK
Stopping service sepdal...OK
Copying file C:\Program Files (x86)\Intel\VTune Amplifier XE 2013\bin64\sepdrv\w
in7\sepdal.sys to C:\Windows\System32\Drivers\sepdal.sys...OK
Installing service sepdal...OK
Warning: service sepdal already exists
Starting service sepdal...OK
Writing startup key to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sepdal...OK
VTSS++ driver found
Deleting system32/drivers/vtss.sys file...OK
Forming source path for vtss.sys...OK
Forming destination path for vtss.sys...OK
Copying file C:\Program Files (x86)\Intel\VTune Amplifier XE 2013\bin32\.\..\bin64\sepdrv\vtss.sys to C:\Windows\system32\drivers\vtss.sys...OK
Installing and starting VTSS++ driver...FAILED

0 Kudos
40 Replies
Peter_W_Intel
Employee
1,825 Views

gabest wrote:

Alright, here is what I figured out.

If you are developing for Windows Phone, the SDK enables the built-in Hypervisor of Windows 8. It blocks something for vtune to work with hardware events and it is not up-to-date enough to set the right cpuid feature bits if you want to detect Haswell.

Thank you to figure out this. Yes, VTune cannot access hardware PMU resource in Hyper-V environment! 

0 Kudos
qually_j_
Beginner
1,826 Views

how do I know if Hyper-V is enabled? I didn't insteall SDK for windows Phone.

And I've tried Update 8, no luck :( will try to contact premier support.

0 Kudos
Peter_W_Intel
Employee
1,826 Views

qually j. wrote:

how do I know if Hyper-V is enabled? I didn't insteall SDK for windows Phone.

And I've tried Update 8, no luck :( will try to contact premier support.

You might check BIOS to know Hyper-V disabled or enabled, read this article and you can explore more from web...

0 Kudos
gabest
Beginner
1,826 Views

In Windows, you can enable/disable it at: Control Panel / Programs and Features / Turn Windows Features on or off / Hyper V.

0 Kudos
Bernard
Valued Contributor I
1,826 Views

@Peter

Congratulations for receiving Black Belt status :)

0 Kudos
Peter_W_Intel
Employee
1,826 Views

iliyapolak wrote:

@Peter

Congratulations for receiving Black Belt status :)

Thank you. I would like to take this chance to thank you, Sergey and Tim for your contributions of helping others on the forums.  

0 Kudos
Bernard
Valued Contributor I
1,826 Views

@Peter

You are welcome:)

I really enjoy sharing my knowledge with others and learn from the others.

0 Kudos
qually_j_
Beginner
1,826 Views

fixed after turned off hyper-V... Million thanks! :)

is it possible to add that hint to this error message?

0 Kudos
Bernard
Valued Contributor I
1,826 Views

Glad that this works.

0 Kudos
Peter_W_Intel
Employee
1,825 Views

qually j. wrote:

fixed after turned off hyper-V... Million thanks! :)

is it possible to add that hint to this error message?

Have report this request to Dev team. Hopefully it might be supported in future releases. 

0 Kudos
Peter_W_Intel
Employee
1,825 Views

Peter Wang (Intel) wrote:

Quote:

qually j.wrote:

fixed after turned off hyper-V... Million thanks! :)

is it possible to add that hint to this error message?

Have report this request to Dev team. Hopefully it might be supported in future releases. 

In future releases, error message has been updated as requested. 

0 Kudos
qually_j_
Beginner
1,825 Views

cool! thanks a lot!

0 Kudos
magicfoot
Beginner
1,825 Views

I am still getting the original error message "amplxe: Error: PMU resource(s) currently being used by another profiling tool" when trying to monitor bandwidth for an MPI application on Windows 8.1 with VS 2013. I have disabled VT-D and Virtualization in the Bios. Coreinfo shows as further below. I have Update 16 of Vtune. Coreinfo shows that there is  HyperVisor on my machine, but I can not find a way to get rid of this. Hypervisor is not showing up as a feature with dism /online /Get-Features

Any suggestions on how I can get the bandwidth profiling to work ??  Coreinfo below.

Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz

Intel64 Family 6 Model 60 Stepping 3, GenuineIntel

HTT * Hyperthreading enabled

HYPERVISOR - Hypervisor is present

VMX * Supports Intel hardware-assisted virtualization

SVM - Supports AMD hardware-assisted virtualization

EM64T * Supports 64-bit mode

SMX - Supports Intel trusted execution

SKINIT - Supports AMD SKINIT

NX * Supports no-execute page protection

SMEP * Supports Supervisor Mode Execution Prevention

SMAP - Supports Supervisor Mode Access Prevention

PAGE1GB * Supports 1 GB large pages

PAE * Supports > 32-bit physical addresses

PAT * Supports Page Attribute Table

PSE * Supports 4 MB pages

PSE36 * Supports > 32-bit address 4 MB pages

PGE * Supports global bit in page tables

SS * Supports bus snooping for cache operations

VME * Supports Virtual-8086 mode

RDWRFSGSBASE * Supports direct GS/FS base access

FPU * Implements i387 floating point instructions

MMX * Supports MMX instruction set

MMXEXT - Implements AMD MMX extensions

3DNOW - Supports 3DNow! instructions

3DNOWEXT - Supports 3DNow! extension instructions

SSE * Supports Streaming SIMD Extensions

SSE2 * Supports Streaming SIMD Extensions 2

SSE3 * Supports Streaming SIMD Extensions 3

SSSE3 * Supports Supplemental SIMD Extensions 3

SSE4a - Supports Sreaming SIMDR Extensions 4a

SSE4.1 * Supports Streaming SIMD Extensions 4.1

SSE4.2 * Supports Streaming SIMD Extensions 4.2

AES * Supports AES extensions

AVX * Supports AVX intruction extensions

FMA * Supports FMA extensions using YMM state

MSR * Implements RDMSR/WRMSR instructions

MTRR * Supports Memory Type Range Registers

XSAVE * Supports XSAVE/XRSTOR instructions

OSXSAVE * Supports XSETBV/XGETBV instructions

RDRAND * Supports RDRAND instruction

RDSEED - Supports RDSEED instruction

CMOV * Supports CMOVcc instruction

CLFSH * Supports CLFLUSH instruction

CX8 * Supports compare and exchange 8-byte instructions

CX16 * Supports CMPXCHG16B instruction

BMI1 * Supports bit manipulation extensions 1

BMI2 * Supports bit manipulation extensions 2

ADX - Supports ADCX/ADOX instructions

DCA - Supports prefetch from memory-mapped device

F16C * Supports half-precision instruction

FXSR * Supports FXSAVE/FXSTOR instructions

FFXSR - Supports optimized FXSAVE/FSRSTOR instruction

MONITOR * Supports MONITOR and MWAIT instructions

MOVBE * Supports MOVBE instruction

ERMSB * Supports Enhanced REP MOVSB/STOSB

PCLULDQ * Supports PCLMULDQ instruction

POPCNT * Supports POPCNT instruction

LZCNT * Supports LZCNT instruction

SEP * Supports fast system call instructions

LAHF-SAHF * Supports LAHF/SAHF instructions in 64-bit mode

HLE - Supports Hardware Lock Elision instructions

RTM - Supports Restricted Transactional Memory instructions

DE * Supports I/O breakpoints including CR4.DE

DTES64 * Can write history of 64-bit branch addresses

DS * Implements memory-resident debug buffer

DS-CPL * Supports Debug Store feature with CPL

PCID * Supports PCIDs and settable CR4.PCIDE

INVPCID * Supports INVPCID instruction

PDCM * Supports Performance Capabilities MSR

RDTSCP * Supports RDTSCP instruction

TSC * Supports RDTSC instruction

TSC-DEADLINE * Local APIC supports one-shot deadline timer

TSC-INVARIANT * TSC runs at constant rate

xTPR * Supports disabling task priority messages

EIST * Supports Enhanced Intel Speedstep

ACPI * Implements MSR for power management

TM * Implements thermal monitor circuitry

TM2 * Implements Thermal Monitor 2 control

APIC * Implements software-accessible local APIC

x2APIC * Supports x2APIC

CNXT-ID - L1 data cache mode adaptive or BIOS

MCE * Supports Machine Check, INT18 and CR4.MCE

MCA * Implements Machine Check Architecture

PBE * Supports use of FERR#/PBE# pin

PSN - Implements 96-bit processor serial number

PREFETCHW * Supports PREFETCHW instruction

Maximum implemented CPUID leaves: 0000000D (Basic), 80000008 (Extended).

Logical to Physical Processor Map:

*--- Physical Processor 0

-*-- Physical Processor 1

--*- Physical Processor 2

---* Physical Processor 3

Logical Processor to Socket Map:

**** Socket 0

Logical Processor to NUMA Node Map:

**** NUMA Node 0

Logical Processor to Cache Map:

*--- Data Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64

*--- Instruction Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64

*--- Unified Cache 0, Level 2, 256 KB, Assoc 8, LineSize 64

**** Unified Cache 1, Level 3, 6 MB, Assoc 12, LineSize 64

-*-- Data Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64

-*-- Instruction Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64

-*-- Unified Cache 2, Level 2, 256 KB, Assoc 8, LineSize 64

--*- Data Cache 2, Level 1, 32 KB, Assoc 8, LineSize 64

--*- Instruction Cache 2, Level 1, 32 KB, Assoc 8, LineSize 64

--*- Unified Cache 3, Level 2, 256 KB, Assoc 8, LineSize 64

---* Data Cache 3, Level 1, 32 KB, Assoc 8, LineSize 64

---* Instruction Cache 3, Level 1, 32 KB, Assoc 8, LineSize 64

---* Unified Cache 4, Level 2, 256 KB, Assoc 8, LineSize 64

0 Kudos
Peter_W_Intel
Employee
1,825 Views

This is a known limitation that PMU event-based sampling cannot work if HyperVisor was enabled. But User mode sampling still can work (they are hotspots, concurrency, and locksandwaits analysis)

Can you disable HyperVisor on Windows 8 first then try again? It's easy to find a way by search internet, here is an example of URL - http://superuser.com/questions/540055/convenient-way-to-enable-disable-hyper-v-in-windows-8 . Hope it helps! 

0 Kudos
Marián__VooDooMan__M
New Contributor II
1,825 Views

Peter Wang (Intel) wrote:

This is a known limitation that PMU event-based sampling cannot work if HyperVisor was enabled. But User mode sampling still can work (they are hotspots, concurrency, and locksandwaits analysis)

Can you disable HyperVisor on Windows 8 first then try again? It's easy to find a way by search internet, here is an example of URL - http://superuser.com/questions/540055/convenient-way-to-enable-disable-h... . Hope it helps! 

Hi Peter,

PMU sampling with hotspots did not work, until I disabled hypervisor (2 reboots!). I was like "wow, I will enable hypervisor!" and there were consequences, so thank you for the link how to disable it.

My question is, what are advantages of enabled hypervisor and disadvantages (besides VTune doesn't like it)?

Is there any plan for VTune to work together with hypervisor enabled, or they are completely incompatible like water and fire?

0 Kudos
Peter_W_Intel
Employee
1,825 Views

My question is, what are advantages of enabled hypervisor and disadvantages (besides VTune doesn't like it)?

Microsoft* Hypervisor feature is Virtual Machine Manager in Windows* 8, it allows to install other operation system such as Windows* 7, or Linux*.  it interferes VTune to access PMU resource so please disable it.

I don't know if there is any recent plan to allow VTune with Hypervisor working together - that need to change code in VTune and Hypervisor both, I think. But I had a feature request to development team, last year.  

 

0 Kudos
Marián__VooDooMan__M
New Contributor II
1,825 Views

I know what hypervisor is, it is kind of "ring -1" (privilege level), so guest kernel in virtual machine can more or less run natively in ring 0, and hypervisor solves issues when something can't be done natively in the guest.

But I thought virtual machines like virtualbox have their own kernel driver which provides hypervisor (and exploits VT-X and similar technologies).

But my question is why hypervisor is built-in into Windows?!

PS: sorry for offtopic question.

TIA!

0 Kudos
David_A_Intel1
Employee
1,826 Views

That, obviously, is a question for Microsoft*. ;)

Windows is designed to detect VT (virtual technology) in Intel processors and loads the hypervisor to enable guest OSes. At this time, the hypervisor allocates the PMU resources and does NOT share them.  Thus, there is no way for VTune Amplifier to collect samples based on processor events.  If you disable VT in the BIOS, Windows will not load the hypervisor.

It is totally up to Microsoft to update their hypervisor (Hyper-V) to enable sharing of the PMU resources.  VMware* has done this with their Fusion* product line, so VTune Amplifier is able to collect event-based samples on the host and guest OSes.

0 Kudos
Bernard
Valued Contributor I
1,826 Views

@MrAnderson

Is there a posibillity to virtualize PMU as a collection of various MSRs? I was thinking about the possibility to virtualize CPU PMU by memory-mapping various MSR registers in the address space of Guest OS. VM monitor could intercept rdmsr and wrmsr priviledged instructions probably issued by VTune driver running on Guest OS and access coresponding MSR registers.Now the question is how to pass those results to Guest OS memory-mapped virtualized MSR registers.

Thanks in advance.

0 Kudos
levicki
Valued Contributor I
1,687 Views
Sorry for bumping up the old thread, but this issue still persists with Hyper-V. It is really inconvenient to have to reboot twice everytime you want to run VTune and then continue running your virtual machines. I know that it is possible to work around by using different Hypervisor (not an option for many due to licensing) or to turn Hyper-V off, but it would be cool if Intel worked with Microsoft so they release an update to Hyper-V which will either share PMU nicely or allow the user to configure whether to use it at all. Finally, I would like to point out that to truly disable Hyper-V you should run the following command and reboot:
bcdedit /set {current} hypervisorlaunchtype off
0 Kudos
Reply