summaryrefslogtreecommitdiffstats
path: root/man/pw-top.1.rst.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--man/pw-top.1.rst.in178
1 files changed, 178 insertions, 0 deletions
diff --git a/man/pw-top.1.rst.in b/man/pw-top.1.rst.in
new file mode 100644
index 0000000..ab8569b
--- /dev/null
+++ b/man/pw-top.1.rst.in
@@ -0,0 +1,178 @@
+pw-top
+######
+
+---------------------------
+The PipeWire process viewer
+---------------------------
+
+:Manual section: 1
+:Manual group: General Commands Manual
+
+SYNOPSIS
+========
+
+| **pw-top** [*options*]
+
+DESCRIPTION
+===========
+
+The *pw-top* program provides a dynamic real-time view of the pipewire
+node and device statistics.
+
+A hierarchical view is shown of Driver nodes and follower nodes. The Driver
+nodes are actively using a timer to schedule dataflow in the followers. The
+followers of a driver node as shown below their driver with a + sign in
+a tree-like representation.
+
+The columns presented are as follows:
+
+S
+ Node status.
+ E = ERROR
+ C = CREATING
+ S = SUSPENDED
+ I = IDLE
+ R = RUNNING
+
+ID
+ The ID of the pipewire node/device, as found in *pw-dump* and *pw-cli*
+
+QUANT
+ The current quantum (for drivers) and the suggested quantum for follower
+ nodes.
+
+ The quantum by itself needs to be divided by the RATE column to calculate
+ the duration of a scheduling period in fractions of a second.
+
+ For a QUANT of 1024 and a RATE of 48000, the duration of one period in the
+ graph is 1024/48000 or 21.3 milliseconds.
+
+ Follower nodes can have a 0 QUANT field, which means that the node does not
+ have a suggestion for the quantum and thus uses what the driver selected.
+
+ The driver will use the lowest quantum of any of the followers. If none of
+ the followers select a quantum, the default quantum in the pipewire configuration
+ file will be used.
+
+ The QUANT on the drivers usually translates directly into the number of audio
+ samples processed per processing cycle of the graph.
+
+ See also https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ#pipewire-buffering-explained
+
+RATE
+ The current rate (for drivers) and the suggested rate for follower
+ nodes.
+
+ This is the rate at which the *graph* processes data and needs to be combined with
+ the QUANT value to derive the duration of a processing cycle in the graph.
+
+ Some nodes can have a 0 RATE, which means that they don't have any rate
+ suggestion for the graph. Nodes that suggest a rate can make the graph switch
+ rates if the graph is otherwise idle and the new rate is allowed as
+ a possible graph rate (see the pipewire configuration file).
+
+ The RATE on (audio) driver nodes usually also translates directly to the
+ samplerate used by the device. Although some devices might not be able to
+ operate at the given samplerate, in which case resampling will need to be
+ done. The negotiated samplerate with the device and stream can be found in
+ the FORMAT column.
+
+WAIT
+ The waiting time of a node is the elapsed time between when the node
+ is ready to start processing and when it actually started processing.
+
+ For Driver nodes, this is the time between when the node wakes up to
+ start processing the graph and when the driver (and thus also the graph)
+ completes a cycle. The WAIT time for driver is thus the elapsed time
+ processing the graph.
+
+ For follower nodes, it is the time spent between being woken up (when all
+ dependencies of the node are satisfied) and when processing starts. The
+ WAIT time for follower nodes is thus mostly caused by context switching.
+
+ A value of --- means that the node was not signaled. A value of +++
+ means that the node was signaled but not awake.
+
+BUSY
+ The processing time is started when the node starts processing until it
+ completes and wakes up the next nodes in the graph.
+
+ A value of --- means that the node was not started. A value of +++
+ means that the node was started but did not complete.
+
+W/Q
+ Ratio of WAIT / QUANT.
+
+ The W/Q time of the driver node is a good measure of the graph
+ load. The running averages of the driver W/Q ratios are used as the DSP
+ load in other (JACK) tools.
+
+ Values of --- and +++ are copied from the WAIT column.
+
+B/Q
+ Ratio of BUSY / QUANT
+
+ This is a good measure of the load of a particular driver or follower
+ node.
+
+ Values of --- and +++ are copied from the BUSY column.
+
+ERR
+ Total of Xruns and Errors
+
+ Xruns for drivers are when the graph did not complete a cycle. This can
+ be because a node in the graph also has an Xrun. It can also be caused when
+ scheduling delays cause a deadline to be missed, causing a hardware
+ Xrun.
+
+ Xruns for followers are incremented when the node started processing but
+ did not complete before the end of the graph cycle deadline.
+
+FORMAT
+ The format used by the driver node or the stream. This is the hardware format
+ negotiated with the device or stream.
+
+ If the stream of driver has a different rate than the graph, resampling will
+ be done.
+
+ For raw audio formats, the layout is <sampleformat> <channels> <samplerate>.
+
+ For IEC958 passthrough audio formats, the layout is IEC958 <codec> <samplerate>.
+
+ For DSD formats, the layout is <dsd-rate> <channels>.
+
+ For Video formats, the layout is <pixelformat> <width>x<height>.
+
+NAME
+ Name assigned to the device/node, as found in *pw-dump* node.name
+
+ Names are prefixed by *+* when they are linked to a driver (entry above with no +)
+
+
+OPTIONS
+=======
+
+-h | --help
+ Show help.
+
+-r | --remote=NAME
+ The name the *remote* instance to monitor. If left unspecified,
+ a connection is made to the default PipeWire instance.
+
+--version
+ Show version information.
+
+
+AUTHORS
+=======
+
+The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@
+
+SEE ALSO
+========
+
+``pipewire(1)``,
+``pw-dump(1)``,
+``pw-cli(1)``,
+``pw-profiler(1)``,
+