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:
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
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
gatord, into the Linux kernel. When
gatord is used together with gator.ko, this is referred to as kernel space gator. When
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: Waitand
Idle: StateLinux 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:
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: Usedcounter does not contain per-process information. As a result, memory statistics are not available in Processes mode.