Kernel configuration menu options

You must enable certain kernel configuration options to run Streamline.

The following menuconfig menus have options that are required for Streamline:

Note

  • If these options are not set correctly, you must change them and rebuild your kernel. If they are set correctly, you are ready to build and install the gator driver.

  • The location of these options might change between releases. If so, use the search option in menuconfig to find them.

  • Extra options are required to enable Arm® Mali GPU support.

General Setup

Enable the Profiling Support option CONFIG_PROFILING, and the Kernel performance events and counters option CONFIG_PERF_EVENTS. CONFIG_PERF_EVENTS is required for kernel versions 3.0 and later. Enable the Timers subsystem → High Resolution Timer Support option CONFIG_HIGH_RES_TIMERS.

Kernel Features

The Enable hardware performance counter support for perf events option CONFIG_HW_PERF_EVENTS. CONFIG_HW_PERF_EVENTS is required for kernel versions 3.0 and later. If you are using Symmetric MultiProcessing (SMP), enable the Use local timer interrupts option CONFIG_LOCAL_TIMERS. If you are running on Linux version 3.12 or later, the CONFIG_LOCAL_TIMERS option is not necessary.

CPU Power Management

Optionally enable the CPU Frequency scaling option CONFIG_CPU_FREQ to enable the CPU Freq Timeline view chart. gatord requires kernel version 2.6.38 or greater to enable this chart.

Kernel hacking

If other trace configuration options are enabled, the Trace process context switches and events option CONFIG_ENABLE_DEFAULT_TRACERS might not be visible in menuconfig as an option. Enabling one of these other trace configurations, for example CONFIG_GENERIC_TRACER, CONFIG_TRACING, or CONFIG_CONTEXT_SWITCH_TRACER, is sufficient to enable tracing. Optionally enable the Compile the kernel with debug info option CONFIG_DEBUG_INFO. This option is only required for profiling the Linux kernel.

Note

Kernel versions before 4.6, with CONFIG_CPU_PM enabled, produce invalid results. For example, counters not showing any data, large spikes, and non-sensible values for counters. This issue is due to the kernel PMU driver not saving state when the processor powers down, or not restoring state when it powers up. To avoid this issue, upgrade to the latest version of the kernel, or apply the patch found at https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=da4e4f18afe0f3729d68f3785c5802f786d36e34. This patch applies cleanly to version 4.4, and it might also be possible to back port it to other versions. If you apply the patch, you might also require the patch at https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cbcc72e037b8a3eb1fad3c1ae22021df21c97a51.