All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nilay Shroff <nilay@linux.ibm.com>
To: Daniel Wagner <dwagner@suse.de>
Cc: linux-nvme@lists.infradead.org, hare@kernel.org,
	kbusch@kernel.org, gjoyce@ibm.com
Subject: Re: [PATCH 3/3] tree: add attribute numa_nodes for NVMe path object
Date: Mon, 7 Apr 2025 19:49:41 +0530	[thread overview]
Message-ID: <fd2407c9-e180-4785-a71f-944ea40edfe3@linux.ibm.com> (raw)
In-Reply-To: <89bce70c-8eac-4dee-a5ca-4aa52fa5687f@flourine.local>



On 4/7/25 4:40 PM, Daniel Wagner wrote:
> On Mon, Apr 07, 2025 at 03:29:53PM +0530, Nilay Shroff wrote:
>> On 4/7/25 1:14 PM, Daniel Wagner wrote:
>>> On Sat, Apr 05, 2025 at 06:32:49PM +0530, Nilay Shroff wrote:
>>>> Add a new attribute named "numa_nodes" under the NVMe path object. This
>>>> attribute is used by the iopolicy "numa". The numa_nodes value is stored
>>>> for each NVMe path and represents the NUMA node(s) associated with it.
>>>> When the iopolicy is set to "numa", I/O traffic originating from a given
>>>> NUMA node will be forwarded through the corresponding NVMe path.
>>>>
>>>> The numa_nodes attribute is useful for observing which NVMe path the
>>>> kernel would choose for I/O forwarding based on NUMA affinity. To support
>>>> this, export the attribute in libnvme.map so it can be accessed via
>>>> nvme-cli.
>>>
>>> This one has the same limitation as the previous one. Given that libnvme
>>> currently caches everything, we could just accept this limitation for
>>> the time being. Any thoughts on this?
>>
>> Yes agreed. So how about adding a new API, for instance, 
>> nvme_path_get_numa_nodes__no_cached which would not return 
>> the cached value but instead re-read the latest value from
>> sysfs attribute and return the latest value? We may similarly
>> extend other APIs where we don't want to retrieve cached 
>> value. 
> 
> Adding _no_cached function is certainty an option for libnvme 1.x.
> 
> One of the API changes for the next major version of libnvme (aka 2.x)
> is to add an handle to all functions. Currently, we only have it for the
> fabrics API. If such handle is available, we could add no-cache flag
> instead duplicating all functions.
> 
> Maybe adding an explicit flags argument for 1.x is an option or should
> we just keep going with the cached only approach?
Both approaches — either adding a no-cache flag or introducing dedicated 
__no_cached APIs — would work. However, in my opinion, we should aim to 
use a consistent method across both libnvme 1.x and 2.x versions.

As we discussed during LSFMM, if we plan to implement an "nvme top" command, 
we would need non-cached versions of these APIs even for nvme-cli. So, 
using the same mechanism for both versions makes sense. Otherwise, we’d 
also have to maintain different logic in nvme top depending on the libnvme
version, which adds unnecessary complexity.

Thanks,
--Nilay



  reply	other threads:[~2025-04-07 14:25 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-05 13:02 [PATCH 0/3] libnvme: add support for discovering multipath of a shared ns Nilay Shroff
2025-04-05 13:02 ` [PATCH 1/3] tree: add support for discovering nvme paths using sysfs multipath link Nilay Shroff
2025-04-07  7:19   ` Daniel Wagner
2025-04-07  9:36     ` Nilay Shroff
2025-04-07 11:01       ` Daniel Wagner
2025-04-07 13:43         ` Nilay Shroff
2025-04-05 13:02 ` [PATCH 2/3] tree: add queue-depth attribute for nvme path object Nilay Shroff
2025-04-07  7:40   ` Daniel Wagner
2025-04-05 13:02 ` [PATCH 3/3] tree: add attribute numa_nodes for NVMe " Nilay Shroff
2025-04-07  7:44   ` Daniel Wagner
2025-04-07  9:59     ` Nilay Shroff
2025-04-07 11:10       ` Daniel Wagner
2025-04-07 14:19         ` Nilay Shroff [this message]
2025-04-07 15:19           ` Daniel Wagner
2025-04-08  5:58             ` Hannes Reinecke
2025-04-08 11:42               ` Daniel Wagner
2025-04-08 11:48                 ` Hannes Reinecke
2025-04-09  9:38                 ` Nilay Shroff
2025-04-09 11:36                   ` Daniel Wagner
2025-04-05 16:15 ` [PATCH 0/3] libnvme: add support for discovering multipath of a shared ns 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=fd2407c9-e180-4785-a71f-944ea40edfe3@linux.ibm.com \
    --to=nilay@linux.ibm.com \
    --cc=dwagner@suse.de \
    --cc=gjoyce@ibm.com \
    --cc=hare@kernel.org \
    --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.