I have basic experience with VTune profiling processes running on Windows.
The setup I am currently taking a look at is the following:
- On my host system (Intel(R) Core(TM) i3-3217UE) I am running Debian 10.2 and Intel VTune 2020.
- My guest OS (running in QEMU with KVM support and a host CPU) is our own operating system (not a Linux).
Now to my questions:
Is it possible to profile this guest OS with VTune? And if it is, what are the required steps?
The steps I am doing at the moment (using vtune-gui):
- I enable the "Analyze KVM guest OS" option in VTune.
- I use the elf-nm tool of the GCC tools on the ELF file of our OS to create a nm mapping file, which I provide to the "Guest OS kallsyms" parameter in VTune.
- Then I attach VTune to the already running QEMU (using Hardware Event Based Sampling)
But when profiling (e.g. "Hotspots analysis") I can see a huge block of around 90% "Outside any known module" (which might be the one I am looking for), and the other 10% seem to be the QEMU functions. But I would like to see the functions of our OS as well.
As from your question our understanding is you were able to profile the quest os running on QEMU from the host using vtune. However we are not clear about what you mean by "functions of our OS", are you also looking for host profiling.
As you have mentioned the guest OS is not a linux. Could you also please provide more info about the guest OS running on QEMU, such as the type, version etc.
yes, the guest OS is not a Linux. It is actually written by us.
So the actual target we want to profile with VTune is our guest OS itself (that's what I mean by "functions of our OS"). Since we cannot run VTune on the guest OS the idea is to have VTune on a compatible host OS (in our case Debian 10.2) and to profile our OS running as a guest in QEMU.
Do you know if this is possible?
Our VTune architect would like to help you through this process. However this may require some help from your side and we may need some log files from your side. If this is fine for you, can you please raise this issue as a support ticket on Intel's service portal? You can reach us at: