[PATCH v5 0/1] Optimizing the print format of the QEMU monitor 'info mtree'

Chao Liu posted 1 patch 6 months, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1746031192.git.lc00631@tecorigin.com
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Peter Xu <peterx@redhat.com>, David Hildenbrand <david@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>
There is a newer version of this series
system/memory.c | 122 +++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 111 insertions(+), 11 deletions(-)
[PATCH v5 0/1] Optimizing the print format of the QEMU monitor 'info mtree'
Posted by Chao Liu 6 months, 2 weeks ago
Hi, all:

Thanks to Markus, BALATON, and Philippe for their reviews

In PATCH v5:

Fix one comment, level 0 no longer prints line characters.

```
-    /* Level 0 always has a col. */
+    /* Level 0 always has not a col. */
    if (level == 0 || col_string == NULL) {
```

PATCH v4 changelog:
1. When printing the child nodes of a single node, the line characters from the
parent node's level are no longer printed, making the output more concise
and clear overall;

2. Use more commonly used ASCII characters, such as '|--' instead of '├──',
and '`--' instead of '└──';

3. Control the number of prefix characters to reduce unnecessary output;

The result is as follows:

```
$ ./qemu-system-aarch64 -S -monitor stdio -M raspi4b
(qemu) info mtree
address-space: memory
`-- 0000000000000000-ffffffffffffffff (prio 0, i/o): system
    |-- 0000000000000000-000000007fffffff (prio 0, ram): ram
...
    |-- 00000000fe000000-00000000ff7fffff (prio 1, i/o): bcm2835-peripherals
    |   |-- 00000000fe900000-00000000fe907fff (prio -1000, i/o): bcm2835-dbus
    |   |-- 00000000fe910000-00000000fe917fff (prio -1000, i/o): bcm2835-ave0
    |   |-- 00000000fe980000-00000000fe990fff (prio 0, i/o): dwc2
    |   |   |-- 00000000fe980000-00000000fe980fff (prio 0, i/o): dwc2-io
    |   |   `-- 00000000fe981000-00000000fe990fff (prio 0, i/o): dwc2-fifo
    |   |-- 00000000fec00000-00000000fec00fff (prio -1000, i/o): bcm2835-v3d
    |   |-- 00000000fec11000-00000000fec110ff (prio -1000, i/o): bcm2835-clkisp
    |   |-- 00000000fee00000-00000000fee000ff (prio -1000, i/o): bcm2835-sdramc
    |   `-- 00000000fee05000-00000000fee050ff (prio 0, i/o): bcm2835-dma-chan15
    |-- 00000000ff800000-00000000ff8000ff (prio 0, i/o): bcm2836-control
...
    |-- 00000000ff845600-00000000ff8456ff (prio 0, i/o): gic_cpu
    `-- 00000000ff846000-00000000ff847fff (prio 0, i/o): gic_vcpu
```

PATCH v3 changelog:
1.Use more maintainable c functions instead of macros, as per review comments.

PATCH v2 changelog:
1. Enrich the commit message, add 'info mtree' print example.
2. Optimize the code implementation according to the review comments.

PATCH v4:
https://lore.kernel.org/qemu-devel/3dd1e9e3eeedc70e1f1878bd17cc779a79084e58.1746030617.git.lc00631@tecorigin.com/

PATCH v3:
https://lore.kernel.org/qemu-devel/15227d0a-c459-4bea-bec7-13dc88d22c3c@linaro.org/

PATCH v2:
https://lore.kernel.org/qemu-devel/72b2d911-112e-48e3-9ba4-017a11758060@linaro.org/
https://lore.kernel.org/qemu-devel/7ec1e581-3919-fdf5-499a-279cba99d43d@eik.bme.hu/
https://lore.kernel.org/qemu-devel/874iy5d9v7.fsf@pond.sub.org/

PATCH v1:
https://lore.kernel.org/qemu-devel/210c69d9-803e-41a5-b40c-bc8372e582fa@redhat.com/

--
Regards,
Chao

Chao Liu (1):
  system: improve visual representation of node hierarchy in 'info
    mtree' output for qemu monitor

 system/memory.c | 122 +++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 111 insertions(+), 11 deletions(-)

-- 
2.48.1


Re: [PATCH v5 0/1] Optimizing the print format of the QEMU monitor 'info mtree'
Posted by BALATON Zoltan 6 months, 2 weeks ago
On Thu, 1 May 2025, Chao Liu wrote:
> Hi, all:
>
> Thanks to Markus, BALATON, and Philippe for their reviews
>
> In PATCH v5:
>
> Fix one comment, level 0 no longer prints line characters.
>
> ```
> -    /* Level 0 always has a col. */
> +    /* Level 0 always has not a col. */
>    if (level == 0 || col_string == NULL) {
> ```
>
> PATCH v4 changelog:
> 1. When printing the child nodes of a single node, the line characters from the
> parent node's level are no longer printed, making the output more concise
> and clear overall;
>
> 2. Use more commonly used ASCII characters, such as '|--' instead of '├──',
> and '`--' instead of '└──';

Thanks but I meant only 1 horizontal dash instead of two to keep output 
fit in narrower terminal. So instead of '--' just '-' and instead of '|--' 
with one dash such as '|-'. Would that work?

Regards,
BALATON Zoltan