You copied the Doc URL to your clipboard.

Comparison of user space gator and kernel space gator

Streamline requires an agent called gator to be installed and running on the target.

gator consists of the following components:

  • A daemon, gatord.

  • Optionally, a Linux kernel driver module, gator.ko.

The role of gator.ko is to collect data from the operating system and applications that are running on the target. gatord reads and processes this data, and creates a directory, whose name ends in .apc, containing the capture data.

gatord must be installed and running on the target for Streamline to communicate with the target, but gatord can run with or without gator.ko. When gatord is launched, it inserts gator.ko, if it exists in the same directory as gatord, into the Linux kernel. When gatord is used together with gator.ko, this is referred to as kernel space gator. When gatord runs without gator.ko, this is referred to as user space gator. User space gator is supported on Linux kernel versions 3.4 and later.

In the absence of gator.ko, user space gator collects most of the performance data using perf. User space gator is restricted to using user space APIs and does not support the following features that kernel space gator supports:

  • Call stack unwinding.

  • Mali GPU activity, although it does support OpenCL.

  • CPU I/O: Wait and Idle: State Linux counters.

  • Access to L2C-310 counters.

User space gator has some other restrictions, for example:

  • It polls the following Linux counters every 100ms, instead of every 1ms or when they change because files in the /proc or /sys filesystem are read:

    • Memory.

    • Disk IO.

    • Network.

    This rate is fixed and overrides the sample rate that is specified in the Capture & Analysis Options dialog.

  • When using user space gator, the Memory: Used counter does not contain per-process information. As a result, memory statistics are not available in Processes mode.

Related concepts