mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
doc: Some minor fixups to the scheduling doc
s/evenfd/eventfd and some minor formatting.
This commit is contained in:
parent
1d23d21ffe
commit
b216a2cfb0
1 changed files with 10 additions and 10 deletions
|
|
@ -17,7 +17,7 @@ Each node also has:
|
||||||
- an activation record that lives in shared memory with memfd.
|
- an activation record that lives in shared memory with memfd.
|
||||||
|
|
||||||
```
|
```
|
||||||
evenfd
|
eventfd
|
||||||
+-^---------+
|
+-^---------+
|
||||||
| |
|
| |
|
||||||
in out
|
in out
|
||||||
|
|
@ -42,7 +42,7 @@ The activation record has the following information:
|
||||||
- Information about repositions (seek) and timebase owners.
|
- Information about repositions (seek) and timebase owners.
|
||||||
|
|
||||||
|
|
||||||
# links.
|
# Links
|
||||||
|
|
||||||
When two nodes are linked together, the output node becomes a dependency for the input
|
When two nodes are linked together, the output node becomes a dependency for the input
|
||||||
node. This means the input node can only start processing when the output node is finished.
|
node. This means the input node can only start processing when the output node is finished.
|
||||||
|
|
@ -57,7 +57,7 @@ are ready to schedule (runnable).
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
evenfd eventfd
|
eventfd eventfd
|
||||||
+-^---------+ +-^---------+
|
+-^---------+ +-^---------+
|
||||||
| | link | |
|
| | link | |
|
||||||
in A out ---------------------> in B out
|
in A out ---------------------> in B out
|
||||||
|
|
@ -92,7 +92,7 @@ and increments the required field.
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
evenfd eventfd
|
eventfd eventfd
|
||||||
+-^---------+ +-^---------+
|
+-^---------+ +-^---------+
|
||||||
| | link | |
|
| | link | |
|
||||||
in A out ---------------------> in B out
|
in A out ---------------------> in B out
|
||||||
|
|
@ -108,11 +108,11 @@ and increments the required field.
|
||||||
| | / /
|
| | / /
|
||||||
| | / /
|
| | / /
|
||||||
| | / /
|
| | / /
|
||||||
| | / /
|
| | / /
|
||||||
v | /-------------/ /
|
v | /-------------/ /
|
||||||
activation { /
|
activation { /
|
||||||
status:OK, V---------------/
|
status:OK, V---------------/
|
||||||
pending:0,
|
pending:0,
|
||||||
required:2
|
required:2
|
||||||
}
|
}
|
||||||
+-^---------+
|
+-^---------+
|
||||||
|
|
@ -137,13 +137,13 @@ will then:
|
||||||
times, cpu usage etc.
|
times, cpu usage etc.
|
||||||
- Perform reposition requests if any, timebase changes, etc..
|
- Perform reposition requests if any, timebase changes, etc..
|
||||||
- The pending counter of each follower node is set to the required field.
|
- The pending counter of each follower node is set to the required field.
|
||||||
- it then loops over all targets of the driver and atomically decrements the required
|
- It then loops over all targets of the driver and atomically decrements the required
|
||||||
field of the activation record. When the required field is 0, the eventfd is signaled
|
field of the activation record. When the required field is 0, the eventfd is signaled
|
||||||
and the node can be scheduled.
|
and the node can be scheduled.
|
||||||
|
|
||||||
In our example above, Node A and be will have their pending state decremented. Node A
|
In our example above, Node A and B will have their pending state decremented. Node A
|
||||||
will be 0 and will be triggered first (node B has 2 pending dependencies to start with and
|
will be 0 and will be triggered first (node B has 2 pending dependencies to start with and
|
||||||
will not be triggered yet). The driver itself also has 2 dependcies left and will not
|
will not be triggered yet). The driver itself also has 2 dependencies left and will not
|
||||||
be triggered (complete) yet.
|
be triggered (complete) yet.
|
||||||
|
|
||||||
## Scheduling node A
|
## Scheduling node A
|
||||||
|
|
@ -175,7 +175,7 @@ For remote nodes, the eventfd and the activation is transfered from the server
|
||||||
to the client.
|
to the client.
|
||||||
|
|
||||||
This means that writing to the remote client eventfd will wake the client directly
|
This means that writing to the remote client eventfd will wake the client directly
|
||||||
without going to the server first.
|
without going to the server first.
|
||||||
|
|
||||||
All remote clients also get the activation and eventfd of the peer and driver they
|
All remote clients also get the activation and eventfd of the peer and driver they
|
||||||
are linked to and can directly trigger peers and drivers without going to the
|
are linked to and can directly trigger peers and drivers without going to the
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue