Troubleshooting

The following table describes known problems and questions you may encounter when analyzing your application with the Intel® VTune™ Amplifier , and suggests solutions.

Problem

Cause and Possible Solution

The sum of the several summands in the table view is not equal to the overall time shown for the parent of the items.

Cause

The values in the data columns are rounded. For items that are sums of several other items, such as a function with several stacks, the rounded sums may differ slightly from the sum of rounded summands.

For example:

Module / Function

Time (exact)

Time (rounded)

foo

0.2468

0.247

    foo()

0.1234

0.123

    bar()

0.1234

0.123

The rounded values in the grid do not sum up exactly as (0.123 + 0.123) != 0.247.

The Call Stack pane shows more stacks than the call tree in the Bottom-up pane.

Cause

There are several stacks going to the same function, but to different code lines.

The call tree in the Bottom-up pane aggregates these stacks in one line but the Call Stack pane shows each as a separate stack. For more details, see the Pane: Bottom-up topic.

The information displayed in the Call Stack pane is incorrect.

Cause

The debug information may be incomplete.

Solution

Re-compile the target with full debug information. For instructions on how to enable this option, see the Using Debug Information topic.

The stack in the Top-down Tree pane is incorrect.

Cause

The target was built with an optimization level that removed stack information from the binary.

Solution

Decrease the optimization level of your project and rebuild the target. Then profile with the VTune Amplifier.

The Call Stack Mode option on the filter bar is set to Only user functions but system functions still appear in the result windows.

Cause

If there is a system function that has no user function calling it, the system function appears and its time is shown in the analysis result windows.

Events = Sample After Value * Samples is not true in case of disabled multiple runs. Cause

By default, the Allow multiple runs option, located on the Target tab of the Project Properties dialog box, is disabled. As a result, the VTune Amplifier uses event multiplexing and runs the data collection only once. This approach lowers the precision of the collected data. So, the VTune Amplifier calculates the number of collected events using the formula: Events= Sample After Value (SAV) * Samples. But when the event multiplexing is enabled, this formula is modified as follows: Events= Sample After Value * Samples * Event Group Count, where the Event Group Count is the number of incompatible groups of events used during the collection. The Event Group Count multiplier is introduced based on the heuristics approach to fill the gaps when the VTune Amplifier collected events for one event group only.

For example, you have three groups of events: A, B and C, where event A1 is in group A. During the application run, the VTune Amplifier spends equal time on collecting each group of events. While group A is analyzed, event A1 has 10 samples with SAV of 10.000 and your application generates no A1 samples at all for the rest of the time. In this case, the accurate result is 100.000 events (10.000 * 10). But the VTune Amplifier provides the resultant number of events as 100.000 * 3 (A, B and C groups) = 300.000.

Solution

Select the Allow multiple runs option to disable event multiplexing and run a separate data collection for each event group. This mechanism provides more precise data on collected events.

VTune Amplifier displays [Skipped frame(s)] in the Bottom-up/Top-down Tree panes.

Cause

VTune Amplifier did not unwind the stack to reduce data collection overhead, and failed to resolve the stack heuristically.

VTune Amplifier displays [Guessed frame(s)] in the Bottom-up/Top-down Tree panes.

Cause

VTune Amplifier did not unwind the stack to reduce data collection overhead, but resolved the stack heuristically.

[Guessed frame] is considered to be a system function. If the Call Stack Mode filter bar option is set to User/system functions, the VTune Amplifier displays [Guessed frame(s)].

Solution

To avoid displaying [Guessed frame(s)], set the Call Stack Mode filter bar option to Only user functions.

CPU Sleep States viewpoint displays an {Unknown Timer} with a blank process name and {Unknown} PID/TID.

Cause

The kernel configuration prevents the VTune Amplifier from collecting the required data: it cannot identify the PID/TID/module or process name for the timer.

Solution

You may set the CONFIG_TIMER_STAT =Y in the boot configuration file and recompile the kernel.

The same functions are compared as different instances in the Bottom-up/Top-down Tree panes.

Cause

You are using the Function Stack grouping for the recompiled binary. The Function Stack grouping uses function start addresses and is based on function instances.

Solution

Switch to the Source Function Stack grouping level to ignore start addresses and display the data by source file objects.

Error message: Problem accessing the sampling driver. The driver may need to be (re)started...

Cause

VTune Amplifier cannot access the hardware event-based sampling (EBS) driver required to run a hardware event-based sampling analysis type. This problem happens if the EBS driver was not loaded or you do not have correct permissions.

Solution

Make sure the EBS drivers are loaded:

> lsmod | grep sep3_1

> lsmod | grep pax

If the drivers are already loaded, make sure you are a member of the vtune user group. You can check the /etc/group file or contact your system administrator to find out if you are a member of this group. For more details, see the Building and Managing the Sampling Driver topic.

Hardware event-based sampling analysis results may be incorrect if nmi_watchdog interrupt capability is enabled.

Cause

If the nmi_watchdog interrupt capability is enabled, event-based analysis results may be incorrect. For example, when using a pause-resume scenario for event-based analysis on 64-bit Red Hat* Enterprise Linux* 6.1 with this feature enabled, no data will be collected when the collection is resumed.

Solution

Before running an event-based analysis, ensure that the nmi_watchdog interrupt capability, if available, is disabled.

To permanently disable the nmi_watchdog interrupt:

  1. Under the root account, edit /boot/grub/grub.conf by adding the nmi_watchdog=0 parameter to the kernel line so that it looks like: /boot/vmlinuz-2.6.32-131.0.15.el6.x86_64 ro root=/dev/sda8 panic=60 nmi_watchdog=0 2.

  2. Reboot the system.

  3. After rebooting, enter the following command to verify whether nmi_watchdog is disabled: grep NMI /proc/interrupts. If you see zeroes, nmi_watchdog is successfully disabled.

To temporarily disable the nmi_watchdog interrupt, enter:

echo 0 > /proc/sys/kernel/nmi_watchdog

Error message: Application sets its own handler for signal <conflicting_signal> that is used for internal needs of the tool. Collection cannot continue.

Cause

User-mode sampling and tracing collector cannot profile applications that set up the signal handler for a signal used by the VTune Amplifier.

Solution

When collecting data with amplxe-cl, add the --run-pass-thru=--profiling-signal <not_used_signal> command line option, where <not_used_signal> is a signal that should not be used by your application to analyze; you need to select the signal from SIGRTMIN..SIGRTMAX.

Alternatively, you may set the environment variable AMPLXE_RUNTOOL_OPTIONS=--profiling-signal <not_used_signal>. You may do this, either from your terminal window before running the VTune Amplifier GUI or from the User-defined Environment Variables dialog box available from the VTune Amplifier Project Properties dialog box.

Information collected via ITT API is not available when attaching to a process.

Cause

If you use ITT API in your source code to collect statistics data, like Frame Analysis or JIT-profiling, attaching to a process does not provide expected results.

Solution

To enable an analysis, specify an application to launch as an analysis target instead of attaching to a process.

Error message: Stack size provided to sigaltstack is too small. Please increase the stack size to 64K minimum.

Cause

When setting up SIGPROF signal handler, the VTune Amplifier attempts to configure the signals to use the alternative stack size using sigaltstack() API to make sure that its signal handler does not depend on the stack size of the profiled application. If the application uses alternative signal stack itself, the VTune Amplifier requires that the alternative stack size is 64K at a minimum. This may be not the case if the application uses SIGSTKSZ constant for the alternative stack size (which is 8192 bytes). In this case, the data collection may terminate with the error message.

Solution

Configure the VTune Amplifier not to set up the alternative stack and use the stack provided by th application. To do this, pass the following command line options to the tool:

$ amplxe-cl -run-pass-thru=--no-altstack

Or, set up the environment variable AMPLXE_RUNTOOL_OPTIONS=--no-alstack.

For more complete information about compiler optimizations, see our Optimization Notice.