Streamline requires an agent called gator to be installed and running on the target.
gator consists of the following components:
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.