2021-11-17 09:38:30

by Akira Yokosawa

[permalink] [raw]
Subject: [PATCH] docs: admin-guide/blockdev: Use subgraphs in node-states-8.dot

While node-states-8.dot has two digraphs, dot(1) command can not
properly handle multiple graphs in a DOT file.

Use subgraphs and merge them into a single graph.

Signed-off-by: Akira Yokosawa <[email protected]>
Cc: Philipp Reisner <[email protected]>
Cc: Lars Ellenberg <[email protected]>
---
Hi Jon,

I happened to spot a broken DOT script at the bottom of

https://www.kernel.org/doc/html/latest/admin-guide/blockdev/drbd/figures.html

and managed to fix it.

DRBD DRIVER maintainers,
If I'm missing something here, please let me know.

Thanks, Akira
--
.../blockdev/drbd/node-states-8.dot | 25 +++++++++++--------
1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/Documentation/admin-guide/blockdev/drbd/node-states-8.dot b/Documentation/admin-guide/blockdev/drbd/node-states-8.dot
index bfa54e1f8016..993f0c152ead 100644
--- a/Documentation/admin-guide/blockdev/drbd/node-states-8.dot
+++ b/Documentation/admin-guide/blockdev/drbd/node-states-8.dot
@@ -1,13 +1,16 @@
-digraph node_states {
- Secondary -> Primary [ label = "ioctl_set_state()" ]
- Primary -> Secondary [ label = "ioctl_set_state()" ]
-}
+digraph G {
+ compound=true;
+ subgraph node_states {
+ Secondary -> Primary [ label = "ioctl_set_state()" ]
+ Primary -> Secondary [ label = "ioctl_set_state()" ]
+ }

-digraph peer_states {
- Secondary -> Primary [ label = "recv state packet" ]
- Primary -> Secondary [ label = "recv state packet" ]
- Primary -> Unknown [ label = "connection lost" ]
- Secondary -> Unknown [ label = "connection lost" ]
- Unknown -> Primary [ label = "connected" ]
- Unknown -> Secondary [ label = "connected" ]
+ subgraph peer_states {
+ Secondary -> Primary [ label = "recv state packet" ]
+ Primary -> Secondary [ label = "recv state packet" ]
+ Primary -> Unknown [ label = "connection lost" ]
+ Secondary -> Unknown [ label = "connection lost" ]
+ Unknown -> Primary [ label = "connected" ]
+ Unknown -> Secondary [ label = "connected" ]
+ }
}

base-commit: 53b606fa29e321352a105978726b975b42b292a4
--
2.17.1



2021-11-25 14:19:04

by Akira Yokosawa

[permalink] [raw]
Subject: Re: [PATCH] docs: admin-guide/blockdev: Use subgraphs in node-states-8.dot

On Wed, 17 Nov 2021 18:38:14 +0900, Akira Yokosawa wrote:
> While node-states-8.dot has two digraphs, dot(1) command can not
> properly handle multiple graphs in a DOT file.
>
> Use subgraphs and merge them into a single graph.
>
> Signed-off-by: Akira Yokosawa <[email protected]>
> Cc: Philipp Reisner <[email protected]>
> Cc: Lars Ellenberg <[email protected]>
> ---
> Hi Jon,
>
> I happened to spot a broken DOT script at the bottom of
>
> https://www.kernel.org/doc/html/latest/admin-guide/blockdev/drbd/figures.html
>
> and managed to fix it.

Gentle ping?

Thanks, Akira

>
> DRBD DRIVER maintainers,
> If I'm missing something here, please let me know.
>
> Thanks, Akira
> --
> .../blockdev/drbd/node-states-8.dot | 25 +++++++++++--------
> 1 file changed, 14 insertions(+), 11 deletions(-)
>
> diff --git a/Documentation/admin-guide/blockdev/drbd/node-states-8.dot b/Documentation/admin-guide/blockdev/drbd/node-states-8.dot
> index bfa54e1f8016..993f0c152ead 100644
> --- a/Documentation/admin-guide/blockdev/drbd/node-states-8.dot
> +++ b/Documentation/admin-guide/blockdev/drbd/node-states-8.dot
> @@ -1,13 +1,16 @@
> -digraph node_states {
> - Secondary -> Primary [ label = "ioctl_set_state()" ]
> - Primary -> Secondary [ label = "ioctl_set_state()" ]
> -}
> +digraph G {
> + compound=true;
> + subgraph node_states {
> + Secondary -> Primary [ label = "ioctl_set_state()" ]
> + Primary -> Secondary [ label = "ioctl_set_state()" ]
> + }
>
> -digraph peer_states {
> - Secondary -> Primary [ label = "recv state packet" ]
> - Primary -> Secondary [ label = "recv state packet" ]
> - Primary -> Unknown [ label = "connection lost" ]
> - Secondary -> Unknown [ label = "connection lost" ]
> - Unknown -> Primary [ label = "connected" ]
> - Unknown -> Secondary [ label = "connected" ]
> + subgraph peer_states {
> + Secondary -> Primary [ label = "recv state packet" ]
> + Primary -> Secondary [ label = "recv state packet" ]
> + Primary -> Unknown [ label = "connection lost" ]
> + Secondary -> Unknown [ label = "connection lost" ]
> + Unknown -> Primary [ label = "connected" ]
> + Unknown -> Secondary [ label = "connected" ]
> + }
> }
>
> base-commit: 53b606fa29e321352a105978726b975b42b292a4
>

2021-11-25 17:55:33

by Joel Colledge

[permalink] [raw]
Subject: Re: [Drbd-dev] [PATCH] docs: admin-guide/blockdev: Use subgraphs in node-states-8.dot

Thanks for catching this, Akira.

Unfortunately, this fix causes the "node_states" and "peer_states"
graphs to be mixed up. I guess this happens because the same IDs are
used in each subgraph. The graphs should be separate.

On reflection, the digraph node_states can be removed entirely. It is
too basic to contain any useful information. In addition it references
"ioctl_set_state". The ioctl configuration interface for DRBD has long
been removed. In fact, it was never in the upstream version of DRBD.

Best regards,
Joel