Re: Does sysfs really provides persistent hardware path to devices?

From: Andrey Borzenkov (arvidjaar_at_mail.ru)
Date: 08/31/03

  • Next message: Ian Kumlien: "Re: [SHED] Questions."
    To: Greg KH <greg@kroah.com>
    Date:	Sun, 31 Aug 2003 14:54:06 +0400
    
    

    On Tuesday 19 August 2003 00:42, Greg KH wrote:
    > On Mon, Aug 18, 2003 at 10:21:22AM +0400, "Andrey Borzenkov" wrote:
    > > just to show what I expected from sysfs - here is entry from Solaris
    > > /devices:
    > >
    > > brw-r----- 1 root sys 32,240 Jan 24 2002
    > > /devices/pci@16,4000/scsi@5,1/sd@0,0:a
    > >
    > > this entry identifies disk partition 0 on drive with SCSI ID 0, LUN 0
    > > connected to bus 1 of controller in slot 5 of PCI bus identified
    > > by 16. Now you can use whatever policy you like to give human
    > > meaningful name to this entry. And if you have USB it will continue
    > > further giving you exact topology starting from the root of your
    > > device tree.
    > >
    > > and this path does not contain single logical id so it is not subject
    > > to change if I add the same controller somewhere else.
    > >
    > > hopefully it clarifies what I mean ...
    >
    > Hm, a bit. First, have you looked at what sysfs provides? Here's one
    > of my machines and tell me if it has all the info you are looking for:
    >
    > $ tree /sys/bus/scsi/
    > /sys/bus/scsi/
    >
    > |-- devices
    > | `-- 0:0:0:0 ->
    > | ../../../devices/pci0000:00/0000:00:1e.0/0000:02:05.0/host0/0:0:0:0
                                                                  ^ ^unstable
    [...]
    >
    > Now, from that you can see exactly where my scsi device is in the pci
    > tree, and you can see in the block directory, what block device is
    > assigned to what physical device in the device tree. Then there are 4
    > partitions on this disk, all what those specific paramaters.
    >
    > So, when sda shows up, udev can determine that it lives on a specific
    > scsi device, located in a specific place in the pci space, and that it
    > has some number of partitions, all of specific sizes, wich specific
    > major/minor numbers. It can then create all of the /dev links based on
    > this.
    >
    > Please, take a few minutes looking at the existing sysfs tree on Linux.
    > If you then have any specific questions, I would be glad to answer
    > them.
    >

    Now I have to ask - do we discuss udev-0.2 (what I currently have) or
    udev-as-it-can-be-in-fututure?

    In udev-0.2 I cannot do it. I can say I want

    TOPOLOGY, BUS="scsi", place="0.0.0.0", NAME="jaz"

    but the next time I plug in SCSI card the host number changes. Even after I
    unplug USB stick and plug it again it gets new host number.

    And the same applies to USB, PCI and whatever. Sysfs exports entity numbers as
    kernel enumerates them; while Solaris exports persistent device tree leaving
    enumeration to user-level tools. Which means that if hardware changes for
    whatever reason enumeration changes as well and your config becomes invalid.

    > Hope this helps,
    >

    Well, we did not move a tiny bit since the beginning of this thread :) You
    still did not show me namedev configuration that implements persistent name
    for a device based on its physical location :)))

    -andrey
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Ian Kumlien: "Re: [SHED] Questions."

    Relevant Pages