Documentation: userspace-api: Document perf ring buffer mechanism
authorLeo Yan <leo.yan@linaro.org>
Tue, 2 Jan 2024 08:50:01 +0000 (16:50 +0800)
committerJonathan Corbet <corbet@lwn.net>
Tue, 30 Jan 2024 20:49:02 +0000 (13:49 -0700)
commit413971526a90f4639d84a027f7cd65a87958cb3b
treeb460366646cfa7e30fb50d82338173b9cd22bc8a
parent8722435d325b642d2969f32ec0daacf0dbaae276
Documentation: userspace-api: Document perf ring buffer mechanism

In the Linux perf tool, the ring buffer serves not only as a medium for
transferring PMU event data but also as a vital mechanism for hardware
tracing using technologies like Intel PT and Arm CoreSight, etc.

Consequently, the ring buffer mechanism plays a crucial role by ensuring
high throughput for data transfer between the kernel and user space
while avoiding excessive overhead caused by the ring buffer itself.

This commit documents the ring buffer mechanism in detail.  It explains
the implementation of both the regular ring buffer and the AUX ring
buffer.  Additionally, it covers how these ring buffers support various
tracing modes and explains the synchronization with memory barriers.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: James Clark <james.clark@arm.com>
Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20240102085001.228815-1-leo.yan@linaro.org
Documentation/userspace-api/index.rst
Documentation/userspace-api/perf_ring_buffer.rst [new file with mode: 0644]