One of the great features in Intel® VTune™ Amplifier is the use of the event monitoring registers built into Intel processors. These can give us important insights into what is really happening on a system. The event monitoring allows the profiling of code in terms of what causes caches misses, unaligned memory accesses, denormalized numeric computations and hundred of other types of processor and memory activity.
Until now, these counters had not been "virtualized" by any virtual machines of which I am aware. This meant that software that utilzes these registers could not do so under a virtual machine. Intel VTune Amplifier would simply disable the "event sampling" features of the tool when run under a VM so we could still get time sampling, call graphs and other functionality under a VM.
VMware has changed that with VMware v5. This is great news: you can now use event sampling under VMware v5. I like this for two reasons:
- I can have a virtual machine for any OS that I like on any machine I have and I can still utilize VTune for work and demos (I still wish Intel had a version of VTune natively for Mac OS - but this support by VMware gives me an option on my Macs now),
- if you care use virtual machines you can actually tune in the environment you use!
In order to use this feature, you need to activate a special "Advanced Processor Option." Here is what the VMWare documentation says:
From the VMware Fusion menu bar, select Window > Virtual Machine Library.
Select a virtual machine and click Settings.
In the Settings window, in the System Settings section, select Processors & Memory.
Click to expand Advanced Options and select the check boxes for the options that you want to use...
Set Advanced Processor Options
You can enable hypervisor applications, applications that use performance counters, or both in certain virtual machines.
With VMware Fusion 5 and later virtual machines, you have the following advanced options:
[Enable code profiling applications in this virtual machine]
You can use code profiling applications such as VTune or OProfile to optimize or debug software that runs inside a virtual machine.
Here is what it looked like on my laptop:
Please share your experience with us.