From: Nilay Shroff <nilay@linux.ibm.com>
To: Hannes Reinecke <hare@suse.de>, Daniel Wagner <dwagner@suse.de>
Cc: linux-nvme@lists.infradead.org, kbusch@kernel.org, gjoyce@ibm.com
Subject: Re: [PATCHv2 2/4] nvme: extend show-topology command to add support for multipath
Date: Wed, 20 Aug 2025 17:29:12 +0530 [thread overview]
Message-ID: <180fd47e-ffe6-4ef1-986e-5885afc34c01@linux.ibm.com> (raw)
In-Reply-To: <4e20561b-8b51-45c5-ad83-24b3d7ae092d@suse.de>
On 8/20/25 2:00 PM, Hannes Reinecke wrote:
> On 8/20/25 10:17, Daniel Wagner wrote:
>> On Tue, Aug 19, 2025 at 08:15:09AM +0200, Hannes Reinecke wrote:
>>>> Okay makes sense, so we'd print <numa-node> and exclude <queue-depth> if iopolicy
>>>> is numa. For 'queue-depth' iopolicy, we'd print <queue-depth> and exclude <numa-node>.
>>>> And for 'round-robin' iopolicy, we'd neither print <numa-node> nor <queue-depth>.
>>>> I'll update this in the next patch.
>>>>
>>> Hmm. I'd rather have _some_ value for 'round-robin', too, as otherwise
>>> the number of fields will be different (and making parsing harder).
>>
>> What type of parser do you mean, a carbon based one or a computer? I
>> strongly recommend to use the JSON output for the later.
>>
>> I would really prefer that the default stdout is easy for a human to
>> read not screen scrappers.
>>
> That was my intention, too. And my prime objection was to have a
> sequence of raw numbers, and requiring the user to figure out what
> these numbers are for.
>
Yes, you are right — those sequences of raw numbers did look confusing,
and that’s why Daniel suggested adding annotations. However, I found it
difficult to annotate the numbers in the tree-style output of show-topology.
To address this, we decided to also support printing topology in a tabular
format, which is much easier for humans to interpret.
As you can see in the last patch of this series (4/4), we now support showing
the topology in a tabular format (when the user selects it). For reference:
# ./nvme show-topology -o tabular
nvme-subsys1 - NQN=nvmet_subsystem
hostnqn=nqn.2014-08.org.nvmexpress:uuid:779c3f46-2bb7-4e82-8f46-2b3e795e54f6
iopolicy=numa
NSHead NSID NSPath ANAState Nodes Qdepth Controller TrType Address State
------- ---- --------- --------- ----- ------ ---------- ------ ------------------------------------------------ -----
nvme1n1 1 nvme1c1n1 optimized 0,1 0 nvme1 tcp traddr=127.0.0.2,trsvcid=4460,src_addr=127.0.0.1 live
--> 1 nvme1c2n1 optimized 2,3 0 nvme2 tcp traddr=127.0.0.3,trsvcid=4460,src_addr=127.0.0.1 live
So as you could see above, this format is much clearer and human-friendly.
(Please note that above table is printed using new table APIs introduced
in patch 3/3).
> But really, I'm not sure if we should print out values from the various
> I/O policies. For NUMA it probably makes sense, but for round-robin and
> queue-depths the values are extremely volatile, so I wonder what benefit
> for the user is here.
>
I think the qdepth output could still be useful. For example, if I/Os are
queuing up on one path (perhaps because that path is slower), then the Qdepth
value might help indicate something unusual or explain why one path is being
chosen over another.
That said, if we all agree that tools or scripts should ideally rely on JSON
output for parsing, then the tabular output could be simplified further:
- For numa iopolicy: print <Nodes> and exclude <Qdepth>.
- For queue-depth iopolicy: print <Qdepth> and exclude <Nodes>.
- For round-robin iopolicy: exclude both <Nodes> and <Qdepth>.
Does this sound reasonable? Or do we still want to avoid printing
<Qdepth> even for queue-depth iopolicy?
Thanks,
--Nilay
next prev parent reply other threads:[~2025-08-20 12:00 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-12 12:56 [PATCHv2 0/4] nvme-cli: enhance the visibility of multipath using show-topology command Nilay Shroff
2025-08-12 12:56 ` [PATCHv2 1/4] nvme: support <device> option in " Nilay Shroff
2025-08-18 7:12 ` Hannes Reinecke
2025-08-19 4:43 ` Nilay Shroff
2025-08-19 6:11 ` Hannes Reinecke
2025-08-12 12:56 ` [PATCHv2 2/4] nvme: extend show-topology command to add support for multipath Nilay Shroff
2025-08-18 7:22 ` Hannes Reinecke
2025-08-19 4:49 ` Nilay Shroff
2025-08-19 6:15 ` Hannes Reinecke
2025-08-19 10:31 ` Nilay Shroff
2025-08-19 11:05 ` Hannes Reinecke
2025-08-19 11:30 ` Nilay Shroff
2025-08-20 8:17 ` Daniel Wagner
2025-08-20 8:30 ` Hannes Reinecke
2025-08-20 11:59 ` Nilay Shroff [this message]
2025-09-01 9:21 ` Nilay Shroff
2025-09-01 16:36 ` Daniel Wagner
2025-09-02 6:26 ` Hannes Reinecke
2025-09-03 4:22 ` Nilay Shroff
2025-09-03 7:24 ` Daniel Wagner
2025-09-03 12:19 ` Nilay Shroff
2025-08-12 12:56 ` [PATCHv2 3/4] nvme: add common APIs for printing tabular format output Nilay Shroff
2025-08-18 7:27 ` Hannes Reinecke
2025-08-19 8:56 ` Nilay Shroff
2025-08-20 8:23 ` Daniel Wagner
2025-08-12 12:56 ` [PATCHv2 4/4] nvme: add support for printing show-topology in tabular form Nilay Shroff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=180fd47e-ffe6-4ef1-986e-5885afc34c01@linux.ibm.com \
--to=nilay@linux.ibm.com \
--cc=dwagner@suse.de \
--cc=gjoyce@ibm.com \
--cc=hare@suse.de \
--cc=kbusch@kernel.org \
--cc=linux-nvme@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.