1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
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)``,
|