From: Shawn <core@enodev.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Andries Brouwer <aebr@win.tue.nl>,
Daniel Jacobowitz <dan@debian.org>, Rob Love <rml@ximian.com>,
rob@landley.net, Pascal Schmidt <der.eremit@email.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Greg KH <greg@kroah.com>
Subject: Re: udev and devfs - The final word
Date: Mon, 05 Jan 2004 16:17:57 -0600 [thread overview]
Message-ID: <1073341077.21797.17.camel@localhost> (raw)
In-Reply-To: <Pine.LNX.4.58.0401051224480.2153@home.osdl.org>
Linus is correct. I say this somewhat because I find his arguments to
make perfect sense in a philosophical way, but more because it is his
kernel.
Anyway, I'll weigh in with my 0.02 pesos:
Right now, as things are, hardware devices' numbers are not very stable
as it is. Detection order can and will change, and you should not rely
on them being the same. PERIOD.
Having said that, I will say that they are /somewhat/ stable. You can,
in general, say 'fdisk /dev/hdb' and be editing the same block device's
partition table... That is, if nothing has changed in the BIOS or
hardware or kernel or....
Now, correct me if I'm wrong, but I don't believe we are expecting
device numbers to change nearly every time you reboot given there are no
hardware changes with a dynamic numbering scheme, right?
I would, as an admin, have need for distinguishing between my 4
identical SATA hard drives with identical partition tables without
having to resort to examining UUIDs, serial number or FS labels by hand,
especially if I dd(1) stuff between them. I understand this is not as
simple as with ide(0-N)(pri|sec)(master|slave) (ignoring that ide(0-N)
could be detected in arbitrary order) as SATA is different.
As an admin, would I at least theoretically have /some/ consistency if
merely for my own sanity when dealing with block devices by hand (I do
need to setup LVM stuff from time to time)??
On Mon, 2004-01-05 at 14:38, Linus Torvalds wrote:
> On Mon, 5 Jan 2004, Andries Brouwer wrote:
> >
> > > udev can then use those serial numbers to have a stable pathname
> >
> > True. Provided that it knows how to get them.
>
> And that is the _only_ thing that the "device number" actually is. It is a
> cookie that the kernel has allocated for the device that the kernel knows
> about. Nothing more.
>
> Go back and read my emails. Device numbers cannot have any meaning, they
> literally are _only_ useful as cookies.
>
> > The kernel driver knew all about the device.
>
> No. The kernel driver knows _of_ the device, it does not know "all about"
> the device. And that's a big difference.
>
> Quite often the kernel only knows that it found "a device". It has very
> limited knowledge about what the device is, and what it can do. That's why
> we have tools like "smartd" etc, that know a lot more about devices than
> the kernel often does.
>
> In particular, the kernel driver knows _nothing_ about potential serial
> numbers or how to read them for different classes of devices.
>
> > Must udev also know all about all possible devices? Do I/O to these devices?
> > Or must sysfs export all data that could possibly be used?
>
> There is nothing to export. You seem to imply that the kernel somehow
> knows more than user space, but the reverse is generally true.
>
> In particular, the kernel should never have policy encoded in it, and
> naming of a device is about pretty much nothing _but_ policy. Stuff that
> the kernel literally has _zero_ knowledged about.
>
> Yes, the kernel knows the physical location, but that doesn't actually
> help the kernel itself. It's exported through sysfs, yes, and udev,
> together with the hotplug stuff, can be used to make up the "stable name".
>
> Have you even _tried_ udev? Udev can do exactly things like find UUID's
> off disks - something the kernel doesn't have a _clue_ about. When the
> kernel sees a disk, it's just a disk. The kernel doesn't know if there is
> an UUID embedded on the disk, and the kernel SHOULD NOT HAVE A POLICY to
> try to find one.
>
> But for user space, the thing is trivially done: the kernel will notify
> user space about the fact that it found a device (without necessarily
> knowing what the heck the device is - quite common with USB or specialty
> SCSI devices). The kernel pretty much doesn't know _anything_ about things
> like laser range finders, cameras etc. It ends up classifying the device
> on a very rough level, nothing more.
>
> And without knowing practically _anythign_ about the device, it still has
> to allocate a device number. Exactly so that somebody else can come around
> and poke at it, and maybe know that "ahh, this device is a USB-attached
> camera" or similar.
>
> Do you not see that fundamental issue? The kernel has to allocate a number
> before a UUID or anythign else is necessarily available.
>
> The UUID/serial number/type policy comes _later_.
>
> Linus
next prev parent reply other threads:[~2004-01-05 22:19 UTC|newest]
Thread overview: 169+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <18Cz7-7Ep-7@gated-at.bofh.it>
2003-12-31 3:05 ` udev and devfs - The final word Pascal Schmidt
2003-12-31 19:23 ` Greg KH
2003-12-31 20:19 ` Rob Love
2003-12-31 22:01 ` Nathan Conrad
2003-12-31 22:20 ` Rob Love
2003-12-31 21:45 ` Tommi Virtanen
2003-12-31 23:10 ` Rob Love
2003-12-31 21:52 ` Tommi Virtanen
2004-01-02 0:17 ` Hollis Blanchard
2004-01-02 0:36 ` viro
2004-01-03 6:04 ` Greg KH
2003-12-31 22:55 ` viro
2003-12-31 23:05 ` Rob Love
2003-12-31 23:48 ` Andreas Dilger
2004-01-07 10:15 ` Olaf Hering
2004-01-07 11:18 ` viro
2004-01-07 13:00 ` Olaf Hering
2004-01-07 13:26 ` viro
2004-01-07 13:27 ` Olaf Hering
2004-01-01 0:15 ` Andries Brouwer
2004-01-01 0:31 ` Rob Love
2004-01-01 12:34 ` Rob Landley
2004-01-01 15:22 ` Rob Love
2004-01-01 15:48 ` Andries Brouwer
2004-01-01 15:54 ` Rob Love
2004-01-02 20:42 ` Linus Torvalds
2004-01-03 3:00 ` Andries Brouwer
2004-01-03 4:46 ` Linus Torvalds
2004-01-03 13:10 ` Andries Brouwer
2004-01-03 22:27 ` Linus Torvalds
2004-01-03 23:08 ` Andries Brouwer
2004-01-04 1:16 ` Mark Mielke
2004-01-04 1:54 ` Valdis.Kletnieks
2004-01-04 18:44 ` Mark Mielke
2004-01-04 2:09 ` Linus Torvalds
2004-01-04 2:49 ` Andries Brouwer
2004-01-04 3:04 ` Linus Torvalds
2004-01-04 4:36 ` Pentium 4 HT SMP Ananda Bhattacharya
2004-01-04 5:55 ` Martin J. Bligh
2004-01-04 13:21 ` udev and devfs - The final word Andries Brouwer
2004-01-04 21:05 ` Linus Torvalds
2004-01-04 22:01 ` Andries Brouwer
2004-01-04 22:37 ` viro
2004-01-05 1:02 ` Mark Mielke
2004-01-05 2:24 ` Valdis.Kletnieks
2004-01-05 2:29 ` Andries Brouwer
2004-01-05 3:42 ` viro
2004-01-04 22:37 ` Helge Hafting
2004-01-04 23:35 ` Valdis.Kletnieks
2004-01-05 1:43 ` Jeremy Maitin-Shepard
2004-01-05 1:47 ` st_dev:st_ino (was: Re: udev and devfs - The final word) Mark Mielke
2004-01-05 2:02 ` st_dev:st_ino Jeremy Maitin-Shepard
2004-01-05 3:14 ` st_dev:st_ino viro
2004-01-05 1:58 ` udev and devfs - The final word viro
2004-01-05 2:12 ` Jeremy Maitin-Shepard
2004-01-05 2:52 ` Linus Torvalds
2004-01-05 3:06 ` David Lang
2004-01-05 3:48 ` Rob Landley
2004-01-05 4:52 ` Trond Myklebust
2004-01-05 7:03 ` [offtopic] " Rob Landley
2004-01-05 12:07 ` Trond Myklebust
2004-01-05 15:13 ` Mark Mielke
2004-01-05 16:36 ` Andreas Schwab
2004-01-05 22:18 ` Mark Mielke
2004-01-05 3:07 ` Daniel Jacobowitz
2004-01-05 3:33 ` Linus Torvalds
2004-01-05 3:50 ` viro
2004-01-05 4:02 ` Linus Torvalds
2004-01-05 4:38 ` viro
2004-01-05 4:52 ` Linus Torvalds
2004-01-05 6:11 ` viro
2004-01-05 7:47 ` Greg KH
2004-01-05 11:15 ` Vojtech Pavlik
2004-01-05 20:11 ` Theodore Ts'o
2004-01-05 21:06 ` Vojtech Pavlik
2004-01-05 22:22 ` Theodore Ts'o
2004-01-06 0:14 ` Rob Landley
2004-01-06 17:28 ` [OT] " Disconnect
2004-01-11 22:12 ` Ed L Cashin
2004-01-05 5:26 ` Eric W. Biederman
2004-01-05 7:39 ` Greg KH
2004-01-07 9:57 ` Pavel Machek
2004-01-05 12:27 ` Andries Brouwer
2004-01-05 16:13 ` Linus Torvalds
2004-01-05 17:29 ` Vojtech Pavlik
2004-01-05 17:33 ` Linus Torvalds
2004-01-05 17:52 ` Davide Libenzi
2004-01-05 18:03 ` Linus Torvalds
2004-01-05 18:09 ` Hugo Mills
2004-01-05 19:10 ` Paul Rolland
2004-01-05 19:52 ` Andries Brouwer
2004-01-05 20:38 ` Linus Torvalds
2004-01-05 22:17 ` Shawn [this message]
2004-01-05 22:25 ` Mark Mielke
2004-01-05 23:05 ` Shawn
2004-01-05 23:23 ` Shawn
2004-01-06 0:43 ` Greg KH
2004-01-06 0:53 ` Shawn
2004-01-05 23:13 ` Andries Brouwer
2004-01-05 23:32 ` Linus Torvalds
2004-01-06 0:59 ` viro
2004-01-06 1:17 ` Linus Torvalds
2004-01-06 4:28 ` viro
2004-01-06 5:07 ` Linus Torvalds
2004-01-06 1:06 ` Andries Brouwer
2004-01-06 15:00 ` Mark Mielke
2004-01-06 0:00 ` Greg KH
2004-01-06 1:41 ` Andries Brouwer
2004-01-07 17:14 ` Greg KH
2004-01-06 0:31 ` Rob Landley
2004-01-06 7:14 ` Vojtech Pavlik
2004-01-06 0:36 ` Silly udev script [was Re: udev and devfs - The final word] Greg KH
2004-01-05 7:44 ` udev and devfs - The final word James H. Cloos Jr.
2004-01-05 7:45 ` Nigel Cunningham
2004-01-05 11:01 ` Robin Rosenberg
2004-01-05 12:39 ` Nigel Cunningham
2004-01-05 14:31 ` IRQ disabled on linux 2.6.1-rc1-mm1 Mainak Mandal _00007001_
2004-01-07 13:39 ` udev and devfs - The final word Robin Rosenberg
2004-01-07 17:16 ` Nigel Cunningham
2004-01-05 9:06 ` Valdis.Kletnieks
2004-01-05 4:15 ` Peter Chubb
2004-01-05 4:42 ` Linus Torvalds
2004-01-03 18:34 ` Wrapping jiffies [was Re: udev and devfs - The final word] Pavel Machek
2004-01-01 19:43 ` udev and devfs - The final word Kai Henningsen
2004-01-02 7:26 ` Rob Landley
2004-01-04 8:57 ` Greg KH
2004-01-04 9:43 ` Rob Landley
2004-01-02 0:17 ` Maciej Zenczykowski
[not found] ` <20040102103104.GA28168@mark.mielke.cc>
2004-01-03 6:07 ` Greg KH
2004-01-03 6:51 ` Valdis.Kletnieks
2004-01-03 11:57 ` Ian Kent
2004-01-03 22:08 ` Greg KH
2004-01-07 10:23 ` Olaf Hering
2004-01-01 23:14 ` Rob
2004-01-02 3:53 ` Tyler Hall
2004-01-01 16:17 ` Pascal Schmidt
2004-01-01 20:03 ` Greg KH
2004-01-08 13:53 "Andrey Borzenkov"
2004-01-08 15:40 ` Ian Kent
2004-01-08 17:26 ` Diego Calleja
2004-01-08 19:25 ` Andrey Borzenkov
2004-01-08 22:40 ` Alex Goddard
2004-01-09 7:03 ` "Andrey Borzenkov"
2004-01-08 18:14 ` Alex Goddard
2004-01-08 18:35 ` Alex Goddard
2004-01-08 19:22 ` Andrey Borzenkov
2004-01-09 8:51 ` Helge Hafting
-- strict thread matches above, loose matches on Subject: below --
2004-01-08 13:05 "Andrey Borzenkov"
2004-01-06 1:20 Paul Zimmerman
[not found] <fa.flhsork.uka2hg@ifi.uio.no>
[not found] ` <fa.hv9hpq7.1l1q9p3@ifi.uio.no>
2004-01-01 19:53 ` walt
2004-01-01 21:53 ` Martin Schlemmer
2004-01-01 16:59 Shaheed
[not found] <fa.af64864.ugabhg@ifi.uio.no>
[not found] ` <fa.de7jae9.1jk0pjt@ifi.uio.no>
2003-12-31 22:17 ` walt
2004-01-01 2:03 ` Martin Schlemmer
2004-01-01 2:05 ` Martin Schlemmer
2003-12-31 0:29 Greg KH
2003-12-31 0:53 ` Prakash K. Cheemplavam
2003-12-31 19:17 ` Greg KH
2004-01-02 16:45 ` Shawn
2003-12-31 12:43 ` Paulo Marques
2004-01-01 1:18 ` Helge Hafting
2004-01-03 5:59 ` Greg KH
2004-01-03 15:22 ` Helge Hafting
2004-01-03 21:18 ` viro
2004-01-03 22:11 ` Greg KH
[not found] ` <20040103140140.3b848e9f.witukind@nsbm.kicks-ass.org>
2004-01-03 22:16 ` Greg KH
2004-01-03 22:33 ` Christoph Hellwig
2004-01-02 17:54 ` Andreas Jellinghaus
2004-01-02 18:19 ` Shawn
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=1073341077.21797.17.camel@localhost \
--to=core@enodev.com \
--cc=aebr@win.tue.nl \
--cc=dan@debian.org \
--cc=der.eremit@email.de \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rml@ximian.com \
--cc=rob@landley.net \
--cc=torvalds@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox