From: Rob Landley <rob@landley.net>
To: Andries Brouwer <aebr@win.tue.nl>, Linus Torvalds <torvalds@osdl.org>
Cc: Andries Brouwer <aebr@win.tue.nl>,
Daniel Jacobowitz <dan@debian.org>, Rob Love <rml@ximian.com>,
Pascal Schmidt <der.eremit@email.de>,
linux-kernel@vger.kernel.org, Greg KH <greg@kroah.com>
Subject: Re: udev and devfs - The final word
Date: Mon, 5 Jan 2004 18:31:26 -0600 [thread overview]
Message-ID: <200401051831.26973.rob@landley.net> (raw)
In-Reply-To: <20040106001326.A1128@pclin040.win.tue.nl>
On Monday 05 January 2004 17:13, Andries Brouwer wrote:
> An earlier fragment of the discussion was concerned with the fact
> that random(); is a bad idea. Something reproducible is better.
To find people making bad assuptions that will only break after widespread
deployment, random() is much better than "usually reproducible".
> Let us abbreviate the above function f. Some driver determines that
> a disk has serial number A809ADGC. Another driver determines that
> some device was produced by HP but otherwise has no opinion.
> A third driver has no stable information at all about the device.
> They assign device numbers f("A809ADGC"), f("HP"), f("").
>
> What is the result? Yes, device numbers are cookies, but a reasonable
> attempt has been made to make the device numbers stable.
Should the same argument be made about process ID's? When your system boots
up, your daemons generally start in the same order. But any script that
depends on this is broken.
Or filehandles. They're cookies. There's whole pages on why it's a bad idea
to make assumptions about what filehandles point to:
http://en.tldp.org/HOWTO/Secure-Programs-HOWTO/avoid-race.html
> No guarantees anywhere - this is best effort. Better than no effort.
You're suggesting that it should be easier to write things that are
fundamentally unclean, and bake in assumptions that WILL break, but not on
the developer's machine, only for end-users who aren't expecting it.
What's the advantage? Making it easier for people to do something stupid?
(You can sort of trust this thing we can't make any guarantees about. Since
when is "sort of trust" a condition that's encouraged? At the very least,
those kinds of cases are backed up by a detection and recovery mechanism and
the whole thing's called a heuristic.) Why is there a need for this?
Either the kernel can make a guarantee, or it should very much not make a
guarantee. Where is an example of a middle ground?
> And this information helps udev. It may make a callout superfluous,
> or even give udev information that cannot be obtained from userspace.
I'm waiting for the udev maintainer to weight in on this and say "no, it
doesn't". If there is information that "cannot be obtained from userspace",
then we should fix the sysfs exports. Encoding something in a semi-stable
cookie and actually trying to USE that information is stupid.
What about kernel upgrades? Future backwards compatability when developers
change the device enumeration methods? (The sata driver got completely
rewritten from scratch, and now it detects devices in a wildly different
order, but we need this shim layer for backwards compatability with a
guarantee we never should have made because we encouraged old scripts to
remain broken.) This plants hidden land mines restricting future
development. You're basically proposing a whole "device number stabilization
infrastructure" for future kernels if it's to have ANY meaning at all...
Where's the advantage? Name a single real-world case that's more difficult to
fix than it would be to make the kernel pander to it in perpetuity.
> Andries
Rob
next prev parent reply other threads:[~2004-01-06 0:32 UTC|newest]
Thread overview: 191+ 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
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 [this message]
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-06 0:36 ` Greg KH
2004-01-06 4:02 ` Kay Sievers
2004-01-10 1:04 ` 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:29 ` Greg KH
2003-12-31 0:46 ` Johannes Erdfelt
2003-12-31 0:53 ` Prakash K. Cheemplavam
2003-12-31 0:53 ` Prakash K. Cheemplavam
2003-12-31 19:17 ` Greg KH
2003-12-31 19:17 ` Greg KH
2004-01-02 16:45 ` Shawn
2004-01-02 16:45 ` Shawn
2003-12-31 12:43 ` Paulo Marques
2004-01-01 1:18 ` Helge Hafting
2004-01-01 1:18 ` Helge Hafting
2004-01-03 5:59 ` Greg KH
2004-01-03 5:59 ` Greg KH
2004-01-03 15:22 ` Helge Hafting
2004-01-03 15:22 ` Helge Hafting
2004-01-03 21:18 ` viro
2004-01-03 21:18 ` viro
2004-01-03 22:11 ` Greg KH
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:16 ` Greg KH
2004-01-03 22:33 ` Christoph Hellwig
2004-01-03 22:33 ` Christoph Hellwig
2004-01-02 17:54 ` Andreas Jellinghaus
2004-01-02 18:19 ` Shawn
2004-03-29 15:38 ` Shawn
2004-03-29 15:39 ` Greg KH
2004-03-29 15:40 ` Helge Hafting
2004-03-29 15:40 ` Greg KH
2004-03-29 15:40 ` viro
2004-03-29 15:40 ` Greg KH
2004-03-29 15:40 ` 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=200401051831.26973.rob@landley.net \
--to=rob@landley.net \
--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=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 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.