All of lore.kernel.org
 help / color / mirror / Atom feed
From: Javier Gonz??lez <javier.gonz@samsung.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Minwoo Im <minwoo.im.dev@gmail.com>,
	Keith Busch <kbusch@kernel.org>, Sagi Grimberg <sagi@grimberg.me>,
	Kanchan Joshi <joshiiitr@gmail.com>,
	<linux-nvme@lists.infradead.org>
Subject: Re: [PATCH 13/13] nvme: introduce generic per-namespace chardev
Date: Mon, 12 Apr 2021 13:52:46 +0200	[thread overview]
Message-ID: <20210412115246.ocqdoejpfiswajqu@mpHalley.localdomain> (raw)
In-Reply-To: <20210412074455.GA3653@lst.de>

On 12.04.2021 09:44, Christoph Hellwig wrote:
>On Fri, Apr 09, 2021 at 08:24:01PM +0900, Minwoo Im wrote:
>> I think if we don't have a route to the live controller from the
>> multipath node /dev/ng0n1, how does application figure out controller
>> node to request admin commands like Identify Namespace before their
>> own I/O ?
>>
>> We have sysfs, but it does not provide every information about the
>> namespace.  Or is there any charming way to find out the live
>> controller from a head node through sysfs or something that I missed
>> here ? :)
>
>The devie links points to the subsystem, which then points to the
>controllers:
>
>root@testvm:/sys/class/nvme-generic/ng0n1# ls -l device/
>total 0
>-r--r--r-- 1 root root 4096 Apr 12 07:43 firmware_rev
>-rw-r--r-- 1 root root 4096 Apr 12 07:44 iopolicy
>-r--r--r-- 1 root root 4096 Apr 12 07:43 model
>drwxr-xr-x 3 root root    0 Apr 12 07:43 ng0n1
>drwxr-xr-x 3 root root    0 Apr 12 07:43 ng0n2
>lrwxrwxrwx 1 root root    0 Apr 12 07:44 nvme0 -> ../../nvme-fabrics/ctl/nvme0
>drwxr-xr-x 9 root root    0 Apr 12 07:43 nvme0n1
>drwxr-xr-x 9 root root    0 Apr 12 07:43 nvme0n2
>lrwxrwxrwx 1 root root    0 Apr 12 07:44 nvme1 -> ../../nvme-fabrics/ctl/nvme1
>drwxr-xr-x 2 root root    0 Apr 12 07:44 power
>-r--r--r-- 1 root root 4096 Apr 12 07:43 serial
>-r--r--r-- 1 root root 4096 Apr 12 07:44 subsysnqn
>lrwxrwxrwx 1 root root    0 Apr 12 07:43 subsystem -> ../../../../class/nvme-subsystem
>-rw-r--r-- 1 root root 4096 Apr 12 07:43 uevent
>

It seems like a limitation that we have to transverse sysfs to make an
in-application enumeration to submit namespace-specific admin commands.

Ideally, applications that are already using IOCTLs should be able to
directly work with the char device. If this is not the case, I am afraid
that the applicability will be limited.

I understand that identifying the live controller in multipath is
something that we need to improve. The question is that if this is a
reasonable thing for you. If there is no fundamental limitation here, I
think we can work the details of enabling namespace admin commands
through and merge the same support for the block device and the char
device.

What do you think?

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  reply	other threads:[~2021-04-12 11:53 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20210408121108eucas1p1fb60de8498a7461b453295497c206246@eucas1p1.samsung.com>
2021-04-08 12:08 ` nvme ioctl refactor and generic per-namespace char device Christoph Hellwig
2021-04-08 12:08   ` [PATCH 01/13] nvme: add a nvme_ns_head_multipath helper Christoph Hellwig
2021-04-09  2:33     ` Chaitanya Kulkarni
2021-04-08 12:08   ` [PATCH 02/13] nvme: cleanup setting the disk name Christoph Hellwig
2021-04-08 12:08   ` [PATCH 03/13] nvme: pass a user pointer to nvme_nvm_ioctl Christoph Hellwig
2021-04-08 12:08   ` [PATCH 04/13] nvme: factor out a nvme_ns_ioctl helper Christoph Hellwig
2021-04-09  2:40     ` Chaitanya Kulkarni
2021-04-08 12:08   ` [PATCH 05/13] nvme: simplify the compat ioctl handling Christoph Hellwig
2021-04-09  2:42     ` Chaitanya Kulkarni
2021-04-09  5:39       ` Christoph Hellwig
2021-04-08 12:08   ` [PATCH 06/13] nvme: simplify block device ioctl handling for the !multipath case Christoph Hellwig
2021-04-08 12:08   ` [PATCH 07/13] nvme: don't bother to look up a namespace for controller ioctls Christoph Hellwig
2021-04-08 12:08   ` [PATCH 08/13] nvme: move the ioctl code to a separate file Christoph Hellwig
2021-04-09  2:45     ` Chaitanya Kulkarni
2021-04-08 12:08   ` [PATCH 09/13] nvme: factor out a nvme_tryget_ns_head helper Christoph Hellwig
2021-04-09  2:46     ` Chaitanya Kulkarni
2021-04-09  5:39       ` Christoph Hellwig
2021-04-09  5:40         ` Chaitanya Kulkarni
2021-04-09  9:18     ` Kanchan Joshi
2021-04-09  9:49       ` Christoph Hellwig
2021-04-08 12:08   ` [PATCH 10/13] nvme: move nvme_ns_head_ops to multipath.c Christoph Hellwig
2021-04-09  2:47     ` Chaitanya Kulkarni
2021-04-08 12:08   ` [PATCH 11/13] nvme: factor out nvme_ns_open and nvme_ns_release helpers Christoph Hellwig
2021-04-09  2:48     ` Chaitanya Kulkarni
2021-04-08 12:08   ` [PATCH 12/13] nvme: let namespace probing continue for unsupported features Christoph Hellwig
2021-04-08 22:42     ` Keith Busch
2021-04-09  5:39       ` Christoph Hellwig
2021-04-09  5:47         ` Keith Busch
2021-04-09  5:53           ` Christoph Hellwig
2021-04-08 12:08   ` [PATCH 13/13] nvme: introduce generic per-namespace chardev Christoph Hellwig
2021-04-08 16:56     ` Keith Busch
2021-04-08 17:00       ` Christoph Hellwig
2021-04-09  6:14       ` Christoph Hellwig
2021-04-09 14:29         ` Keith Busch
2021-04-09 14:35           ` Christoph Hellwig
2021-04-09  7:29     ` Minwoo Im
2021-04-09  7:54       ` Christoph Hellwig
2021-04-09  8:02         ` Minwoo Im
2021-04-09  9:52           ` Christoph Hellwig
2021-04-09 11:24             ` Minwoo Im
2021-04-12  7:44               ` Christoph Hellwig
2021-04-12 11:52                 ` Javier Gonz??lez [this message]
2021-04-08 22:43   ` nvme ioctl refactor and generic per-namespace char device Keith Busch
2021-04-09 17:45   ` Javier Gonz??lez
2021-04-10  6:46   ` Christoph Hellwig

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=20210412115246.ocqdoejpfiswajqu@mpHalley.localdomain \
    --to=javier.gonz@samsung.com \
    --cc=hch@lst.de \
    --cc=joshiiitr@gmail.com \
    --cc=kbusch@kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=minwoo.im.dev@gmail.com \
    --cc=sagi@grimberg.me \
    /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.