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

cpu cycles spent in timer interrupt shown as process cycles

mnpmnp
Beginner
304 Views
I am running vtune on linux with remote data collector setup.
When I run sampling when there is 70% cpu usage (load test), I see that delay_pmtmr() function in kernel taken most CPU samples for some high load processes.
day_pmtmr() is something is do with power management which also isprimary timing source for the Linux kernel in some south bridges.
Why do we have delay_pmtmr() which is interrupt related function shown as part of cycles spent in some processes?
Is there a way to configure so that cycles spent in interrupts handling will not be considered for processes.
Thanks.
0 Kudos
3 Replies
Peter_W_Intel
Employee
304 Views
Hi,

Intel? VTune Performance Analyzer's sampling data collector monitor all active modules in your system.

Since your application is not 100% CPU utilization, other modules (which could be other applications, device drivers, system modules (e.g. power management module) will be captured.

The user has no way to configure what module to be monitored, what module not to be monitored.

dya_pmtmr() could belong to some system module, which belongs to high load processes.
But dya_pmtmr() doesn't belong to user's module, so please select high load process first in Processes Report then select user's module to open Modules Report - dya_pmtmr should not be in.

Regards, Peter
0 Kudos
mnpmnp
Beginner
304 Views
Our application consists of more than one processes and some kernel modules.
One of our process which had 39% of total samples, shows that vmlinux had 90% of samples within this process. And then it shows that delay_pmtmr() had 60% samples within vmlinux within that process.
So I think timer interrupt handling is being considered as cycles spent in this process. Is it the expected way from vtune?
Looking at the calculation, around 55% (60% of 90%) of total cycles of this processes are in delay_pmtmr() function. This is not one would expect for any process.
0 Kudos
Peter_W_Intel
Employee
304 Views

CPU utilizing of your application is not high, so more samples were captured in delay_pmtmr() of vmliunx.

CP interruption is to capture all sampleswhateverit isin user mode or in system mode. If you wont see cycles in vmlinux, you can use call graph data collection, that will be concentrated in user code.

Regards, Peter

0 Kudos
Reply