From: Vincent Donnefort <vdonnefort@google.com>
To: rostedt@goodmis.org, mhiramat@kernel.org,
linux-trace-kernel@vger.kernel.org
Cc: mathieu.desnoyers@efficios.com, kernel-team@android.com,
linux-kernel@vger.kernel.org,
Vincent Donnefort <vdonnefort@google.com>
Subject: [PATCH v7 19/20] Documentation: tracing/remotes: Add detailed tracefs layout
Date: Thu, 24 Sep 2026 15:57:53 +0100 [thread overview]
Message-ID: <20260924145754.1285146-20-vdonnefort@google.com> (raw)
In-Reply-To: <20260924145754.1285146-1-vdonnefort@google.com>
Add a description for each tracefs file available in a trace remote
instance.
Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
---
Documentation/trace/remotes.rst | 66 +++++++++++++++++++++++++++++++--
1 file changed, 62 insertions(+), 4 deletions(-)
diff --git a/Documentation/trace/remotes.rst b/Documentation/trace/remotes.rst
index 1f9d764f69aa..b02ebed4a03f 100644
--- a/Documentation/trace/remotes.rst
+++ b/Documentation/trace/remotes.rst
@@ -19,8 +19,8 @@ for which the host kernel can see and expose to user space.
Register a remote
=================
-A remote must provide a set of callbacks `struct trace_remote_callbacks` whom
-description can be found below. Those callbacks allows Tracefs to enable and
+A remote must provide a set of callbacks `struct trace_remote_callbacks` whose
+description can be found below. Those callbacks allow Tracefs to enable and
disable tracing and events, to load and unload a tracing buffer (a set of
ring-buffers) and to swap a reader page with the head page, which enables
consuming reading.
@@ -28,8 +28,66 @@ consuming reading.
.. kernel-doc:: include/linux/trace_remote.h
Once registered, an instance will appear for this remote in the Tracefs
-directory **remotes/**. Buffers can then be read using the usual Tracefs files
-**trace_pipe** and **trace**.
+directory **remotes/**. The files within this directory allow configuring
+and reading the remote buffer (see `The File System` below).
+
+The File System
+===============
+A remote tracing instance is represented by a directory in Tracefs under
+**remotes/**. The layout and files within it are very similar to standard ftrace
+instances. Inside the remote directory, the following files and directories are
+available:
+
+ tracing_on
+ This file allows enabling or disabling the remote tracing.
+
+ buffer_size_kb
+ This file displays and allows changing the size of the per-CPU ring
+ buffers used by the remote. It also shows if the buffer is **loaded** or
+ **unloaded**. To change the size, the remote buffers must be unloaded
+ first. Remote buffers are automatically unloaded when **tracing_on** is
+ off, no one is reading the buffer (either by accessing **trace_pipe** or
+ when **dmesg** is on) and no events remain in the buffer.
+
+ trace
+ Display the human-readable content of the remote buffers. Reading this
+ file is non-consuming. Writing to this file clears the ring buffers.
+
+ trace_pipe
+ Similar to **trace** but reading it consumes the events from the ring
+ buffers (consuming read). It blocks if there are no new events.
+
+ dmesg
+ When enabled, all events from the remote are redirected to the kernel
+ dmesg. This is similar to the **tp_printk** option for in-kernel events.
+ It counts as a reader of the remote buffers and prevents unloading.
+
+ dump_on_panic
+ When enabled, the remote tracing buffer is dumped to the console when a
+ kernel panic occurs.
+
+ poll_ms
+ Modifies the polling interval for the trace_remote.
+
+ per_cpu/
+ This directory contains subdirectories for each possible CPU (e.g.,
+ **cpu0/**, **cpu1/** ...)
+
+ per_cpu/cpuX/trace
+ This is similar to the **trace** file, but it will only display the data
+ specific for the CPU. If written to, it only clears the specific CPU
+ buffer.
+
+ per_cpu/cpuX/trace_pipe
+ This is similar to the **trace_pipe** file, and is a consuming read, but
+ it will only display (and consume) the data specific to the CPU.
+
+ events/
+ This directory contains remote events that can be enabled or disabled.
+
+ events/enable
+ Allows enabling or disabling all the remote events.
+
Declare a remote event
======================
--
2.56.0.rc1.310.g51773c2048-goog
next prev parent reply other threads:[~2026-09-24 14:58 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 14:57 [PATCH v7 00/20] tracing/remotes: Add printk, dump_on_panic and boot parameters Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 01/20] tracing/remotes: Gate tracefs files opening on trace remote registration Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 02/20] tracing/remotes: Release tracefs,eventfs on registration failure Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 03/20] tracing/remotes: Use kstrtobool for boolean tracefs files Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 04/20] tracing/remotes: Initialise pos in trace_start() Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 05/20] tracing/remotes: Annotate remote shared fields with READ_ONCE/WRITE_ONCE Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 06/20] tracing/remotes: Use a single per-remote polling work Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 07/20] tracing/simple_ring_buffer: Add support for compressed length Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 08/20] tracing/remotes: Add dmesg tracefs file Vincent Donnefort
2026-09-24 15:12 ` sashiko-bot
2026-09-24 14:57 ` [PATCH v7 09/20] tracing/remotes: selftests: Add a test for the " Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 10/20] tracing/remotes: selftests: Prefix hypervisor folder Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 11/20] ring-buffer: Use irqsave for the reader lock in ring_buffer_poll_remote Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 12/20] ring-buffer: Use panic-friendly locking in ring_buffer_iter interface Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 13/20] ring-buffer: Add ring_buffer_read_remote_meta_page() Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 14/20] ring-buffer: Add kerneldoc for ring_buffer_poll_remote Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 15/20] tracing/remotes: Add dump_on_panic tracefs file Vincent Donnefort
2026-09-24 15:15 ` sashiko-bot
2026-09-24 14:57 ` [PATCH v7 16/20] tracing/remotes: selftests: Add a test for the " Vincent Donnefort
2026-09-24 14:57 ` [PATCH v7 17/20] tracing/remotes: Add poll_ms " Vincent Donnefort
2026-09-24 15:13 ` sashiko-bot
2026-09-24 14:57 ` [PATCH v7 18/20] tracing/remotes: Add trace_remote cmdline options Vincent Donnefort
2026-09-24 15:16 ` sashiko-bot
2026-09-24 14:57 ` Vincent Donnefort [this message]
2026-09-24 14:57 ` [PATCH v7 20/20] Documentation/kernel-parameters: Add trace_remote Vincent Donnefort
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260924145754.1285146-20-vdonnefort@google.com \
--to=vdonnefort@google.com \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox