lkml.org 
[lkml]   [2019]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v6 04/16] nvme-core: introduce nvme_get_by_path()


    On 2019-07-25 2:31 p.m., Keith Busch wrote:
    > On Thu, Jul 25, 2019 at 02:28:28PM -0600, Logan Gunthorpe wrote:
    >>
    >>
    >> On 2019-07-25 1:58 p.m., Keith Busch wrote:
    >>> On Thu, Jul 25, 2019 at 11:54:18AM -0600, Logan Gunthorpe wrote:
    >>>>
    >>>>
    >>>> On 2019-07-25 11:50 a.m., Matthew Wilcox wrote:
    >>>>> On Thu, Jul 25, 2019 at 11:23:23AM -0600, Logan Gunthorpe wrote:
    >>>>>> nvme_get_by_path() is analagous to blkdev_get_by_path() except it
    >>>>>> gets a struct nvme_ctrl from the path to its char dev (/dev/nvme0).
    >>>>>>
    >>>>>> The purpose of this function is to support NVMe-OF target passthru.
    >>>>>
    >>>>> I can't find anywhere that you use this in this patchset.
    >>>>>
    >>>>
    >>>> Oh sorry, the commit message is out of date the function was actually
    >>>> called nvme_ctrl_get_by_path() and it's used in Patch 10.
    >>>
    >>> Instead of by path, could we have configfs take something else, like
    >>> the unique controller instance or serial number? I know that's different
    >>> than how we handle blocks and files, but that way nvme core can lookup
    >>> the cooresponding controller without adding new cdev dependencies.
    >>
    >> Well the previous version of the patchset just used the ctrl name
    >> ("nvme1") and looped through all the controllers to find a match. But
    >> this sucks because of the inconsistency and the fact that the name can
    >> change if hardware changes and the number changes. Allowing the user to
    >> make use of standard udev rules seems important to me.
    >
    > Should we then create a new udev rule for persistent controller
    > names? /dev/nvme1 may not be the same controller each time you refer
    > to it.

    Udev can only create symlinks from /dev/nvme0 to
    /dev/nvme-persistent-name and users can do this as they need now. No
    changes needed.

    My point was if we use the ctrl name (nvme0) as a reference then the
    kernel can't make use of these symlinks or anything udev does seeing
    that name is internal to the kernel only.

    If we use cdev_get_by_path()/nvme_ctrl_get_by_path() then this isn't a
    problem as we can open a symlink to /dev/nvme0 without any issues.

    Logan

    \
     
     \ /
      Last update: 2019-07-25 22:39    [W:4.212 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site