linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Willem Konynenberg <wfk@xos.nl>
To: linux-kernel@vger.kernel.org
Cc: Andries.Brouwer@cwi.nl
Subject: Re: LANANA: To Pending Device Number Registrants
Date: Thu, 17 May 2001 04:46:33 +0200	[thread overview]
Message-ID: <200105170246.EAA12820@rabbit.xos.nl> (raw)
In-Reply-To: Your message of "Thu, 17 May 2001 02:18:20 +0200." <UTC200105170018.CAA30316.aeb@vlet.cwi.nl>

Andries.Brouwer@cwi.nl wrote:
[lots of sensible comments to get this discussion "on track"]

> So we have: user space has file names and uses open() or mount().
> Kernel space has device paths.
> 
> In principle the kernel could just number the devices it sees 1,2,...
> and export information about them, so that user space can choose
> the right number.
> The part about exporting information is good. User space needs to
> be able to ask if a certain beast is a CD reader, and if so what
> manufacturer and model.
> But the part about numbering 1,2,... may not be good enough, e.g.
> because it does not survive reboots. If we remain Unix-like and use
> device nodes in user space to pair a file name with a number, then
> it would be very nice if the number encoded the device path uniquely.
> Many programs expect this.
> It cannot be done in all cases, but a good approximation is obtained
> if the number is a hash of the device path. In so far the hash is
> collision free we obtain numbers that stay unique over a reboot.

I think here we might learn from the comments that people made
about how AIX and OSF/1/Tru64 have been doing this.

You want the relation between a given /dev/xyz node and the
corresponding device in the kernel to be relatively stable from
the perspective of the user, so you can use it to implement device
naming and access policies.  What "stable" means technically is a
matter of policy, since it depends very much on the perspective
of the user.

You also want the relation between a given /dev/xyz node and the
major/minor number of the related device to be "fixed", so you
don't need to recreate all device nodes on every boot.

The issue is then how to establish the relation between major/minor
numbers and (potentially very dynamic) kernel-internal device
entities, in such a way that the type of stability desired by
the user is provided.

As people noted, the mechanism used by AIX and Tru64 is essentially
to have this relationship established by a user-level tool using
a configuration file with policy information, and a status file
to maintain state information across reboots.
This tool can implement any policy it likes, which means we can
avoid all the policy discusions where the kernel is concerned,
and can instead focus on methods.

For the people who want things to be backward compatible, it
would be sufficient to implement a default tool that will
set all the major/minor numbers exactly like they are now,
so all existing device nodes will keep working as they did.

In order to support hot plugging of devices, I suppose this
tool should either run as a daemon, or set itself up to be
called by the kernel whenever something happens.  (I think
I would prefer the daemon...)   Sort of like /sbin/hotplug.

The next issue to discuss is then how to shape the mechanism by
which the device manager tool and the kernel exchange information
on what devices are out there, and what major/minor numbers each
should be assigned.
The sort of information that a device manager might want to
use, depending on how it is implemented and configured, would
include such things as: device driver id, I/O bus, I/O port,
IRQ nr, SCSI card/bus/id/lun, partition id, serial number,
device model/type, filesystem label, filesystem UUID, phase of
the moon, etc, etc.
Basically, anything that a driver or related subsystem can come
up with that might help identify a device or resource in any
particular situation, depending on user preferences.
I think this may fit somewhere in /proc/sys/dev or thereabout.


The big advantage of this approach is basically that we can
continue to use the good old device nodes in the filesystem
as we have done for the last 30 years, with all the advantages,
but without the major/minor number allocation troubles.


Hmm, this all sounds too simple.
I must be talking nonsense.   Please wake me up.  ;-)



-- 
     Willem Konynenberg <wfk@xos.nl>
I am not able rightly to apprehend the kind of confusion of ideas
that could provoke such a question  --  Charles Babbage

  parent reply	other threads:[~2001-05-17  2:47 UTC|newest]

Thread overview: 319+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-05-17  0:18 LANANA: To Pending Device Number Registrants Andries.Brouwer
2001-05-17  1:18 ` Mike Anderson
2001-05-17  2:46 ` Willem Konynenberg [this message]
2001-05-17  9:42   ` Michael Meissner
  -- strict thread matches above, loose matches on Subject: below --
2001-05-17 20:00 Brian Wheeler
2001-05-18  8:24 ` Tim Jansen
2001-05-18  8:27   ` Alan Cox
2001-05-18 14:06   ` Brian Wheeler
2001-05-17  8:58 Andries.Brouwer
2001-05-17  0:09 Dunlap, Randy
2001-05-16 15:06 Khachaturov, Vassilii
2001-05-16 13:13 Jesse Pollard
2001-05-16 13:11 mike_phillips
2001-05-18 18:23 ` Mark H. Wood
2001-05-16  9:56 Chemolli Francesco (USI)
2001-05-16 11:18 ` Helge Hafting
2001-05-16 12:09   ` Thomas Kotzian
2001-05-16 18:58     ` Heinz J. Mauelshagen
2001-05-17  6:35       ` Albert D. Cahalan
2001-05-17  9:39         ` Guest section DW
2001-05-21  7:16           ` Albert D. Cahalan
2001-05-18 15:57         ` Heinz J. Mauelshagen
2001-05-16 12:12   ` Oystein Viggen
2001-05-16 12:45     ` Josh Fryman
2001-05-16 13:28     ` Helge Hafting
2001-05-16 18:37       ` Hacksaw
2001-05-16 16:30     ` Miles Lane
2001-05-16 16:18       ` Michael Meissner
2001-05-18 14:17         ` Stephen C. Tweedie
2001-05-19  5:29           ` Chris Wedgwood
2001-05-19 16:43             ` Stephen C. Tweedie
2001-05-19 18:21             ` Hans Reiser
2001-05-19 20:20           ` Michael Meissner
2001-05-21 13:34             ` Stephen C. Tweedie
2001-05-16 15:14 ` Jonathan Lundell
2001-05-16  0:01 Bingner Sam J. Contractor RSIS
2001-05-16 11:08 ` Alex Bligh - linux-kernel
2001-05-15 23:49 Bingner Sam J. Contractor RSIS
2001-05-16  7:10 ` Andrzej Krzysztofowicz
2001-05-16 18:25 ` Richard Gooch
2001-05-15 23:16 David Brownell
2001-05-15 23:35 ` Alexander Viro
2001-05-16  0:13   ` David Brownell
2001-05-15 23:56 ` Tim Jansen
2001-05-16  0:41 ` Miles Lane
2001-05-16 16:55   ` James Simmons
2001-05-17  6:12 ` Miles Lane
2001-05-17 12:07   ` Oliver Neukum
2001-05-17 16:34     ` Tim Jansen
2001-05-17 17:03     ` David Brownell
2001-05-17 16:17   ` David Brownell
2001-05-17 16:56   ` James Simmons
2001-05-15 22:49 David Brownell
2001-05-15 22:21 David Brownell
2001-05-15 23:17 ` Andreas Dilger
2001-05-15 23:35   ` David Brownell
2001-05-15 23:55   ` Jonathan Lundell
2001-05-17 18:39   ` Mark H. Wood
2001-05-15 21:27 Timothy A. Seufert
2001-05-15 21:38 ` Alexander Viro
2001-05-16  7:23 ` Geert Uytterhoeven
2001-05-16 15:50 ` Mo McKinlay
2001-05-15 21:26 Andrzej Krzysztofowicz
     [not found] <mng==Pine.LNX.4.10.10105151151380.22038-100000@www.transvirtual.com>
     [not found] ` <mng==Pine.LNX.4.21.0105151043360.2112-100000@penguin.transmeta.com>
2001-05-15 20:59   ` Jens-Uwe Mager
2001-05-15 17:00 David Balazic
2001-05-16 17:02 ` Hacksaw
2001-05-16 17:19   ` Mathieu Chouquet-Stringer
2001-05-16 20:05     ` James Simmons
2001-05-16 20:13       ` Mathieu Chouquet-Stringer
2001-05-16 20:16         ` James Simmons
2001-05-16 20:21           ` Mathieu Chouquet-Stringer
2001-05-14 19:19 H. Peter Anvin
2001-05-14 19:36 ` Jeff Garzik
2001-05-14 19:57   ` H. Peter Anvin
2001-05-14 20:04     ` Jeff Garzik
2001-05-14 20:09     ` Alan Cox
2001-05-14 20:24       ` Jeff Garzik
2001-05-14 20:27         ` H. Peter Anvin
2001-05-14 22:21           ` Alan Cox
2001-05-14 23:43             ` Jan Niehusmann
2001-05-14 23:48               ` Alan Cox
2001-05-14 20:29         ` Linus Torvalds
2001-05-14 20:55           ` Neil Brown
2001-05-14 21:20             ` Alan Cox
2001-05-14 21:37               ` Neil Brown
2001-05-14 21:24             ` Jeff Garzik
2001-05-14 21:33               ` Neil Brown
2001-05-15  6:41             ` Linus Torvalds
2001-05-15  8:57               ` Alan Cox
2001-05-15  9:08                 ` Linus Torvalds
2001-05-15  9:26                   ` Alan Cox
2001-05-15  9:49                     ` Alexander Viro
2001-05-15  9:51                       ` Alan Cox
2001-05-15 10:12                         ` Alexander Viro
2001-05-15 10:36                           ` Alan Cox
2001-05-15 15:16                         ` Linus Torvalds
2001-05-15 20:55                           ` Alan Cox
2001-05-15 15:10                     ` Linus Torvalds
2001-05-15 15:29                       ` Alexander Viro
2001-05-15 17:21                       ` James Simmons
2001-05-15 17:25                         ` Alexander Viro
2001-05-15 17:29                           ` James Simmons
2001-05-15 17:32                             ` Alexander Viro
2001-05-15 17:44                               ` James Simmons
2001-05-15 18:18                                 ` Ingo Oeser
2001-05-15 18:36                                   ` James Simmons
2001-05-15 18:42                                 ` Alexander Viro
2001-05-16  8:29                                 ` Helge Hafting
2001-05-16 17:16                                   ` James Simmons
2001-05-15 21:46                               ` Chip Salzenberg
2001-05-15 21:50                                 ` James Simmons
2001-05-15 18:04                             ` Linus Torvalds
2001-05-15 18:58                               ` Johannes Erdfelt
2001-05-15 19:17                                 ` Linus Torvalds
2001-05-15 19:23                                   ` H. Peter Anvin
2001-05-15 19:43                                   ` Johannes Erdfelt
2001-05-15 21:58                                     ` Chip Salzenberg
2001-05-16  8:51                                     ` Helge Hafting
2001-05-17 10:20                                     ` Pavel Machek
2001-05-18 17:32                                       ` Johannes Erdfelt
2001-05-19 10:21                                         ` Pavel Machek
2001-05-19  8:18                                     ` Kai Henningsen
2001-05-17 20:40                                 ` Kai Henningsen
2001-05-17 22:46                                   ` Johannes Erdfelt
2001-05-15 20:03                               ` James Simmons
2001-05-15 20:06                                 ` H. Peter Anvin
2001-05-15 20:28                                   ` James Simmons
2001-05-15 21:20                                     ` Nicolas Pitre
2001-05-15 21:28                                       ` James Simmons
2001-05-15 21:31                                         ` H. Peter Anvin
2001-05-15 21:43                                         ` Johannes Erdfelt
2001-05-15 21:49                                           ` James Simmons
2001-05-16  7:05                                           ` Kai Henningsen
2001-05-15 22:07                                         ` Alan Cox
2001-05-16  7:11                                         ` Kai Henningsen
2001-05-16  7:43                                           ` Alexander Viro
2001-05-16  9:45                                             ` Malcolm Beattie
2001-05-16  0:59                                       ` Daniel Phillips
2001-05-16  1:34                                         ` Nicolas Pitre
2001-05-16  1:51                                           ` Jonathan Lundell
2001-05-16 11:34                                         ` Erik Mouw
2001-05-17 17:07                                         ` Eric W. Biederman
2001-05-17 19:30                                           ` Jeff Randall
2001-05-16  7:17                                       ` Kai Henningsen
2001-05-15 20:14                                 ` Alexander Viro
2001-05-15 20:30                                   ` H. Peter Anvin
2001-05-15 20:41                                     ` Alexander Viro
2001-05-15 20:51                                       ` Linus Torvalds
2001-05-16  1:01                                         ` Daniel Phillips
2001-05-16  1:04                                           ` H. Peter Anvin
2001-05-15 20:37                                   ` Linus Torvalds
2001-05-15 20:56                                     ` Jeff Garzik
2001-05-15 21:22                                     ` James Simmons
2001-05-17 10:42                                     ` Pavel Machek
2001-05-18 18:32                                       ` James Simmons
2001-05-15 20:57                                   ` James Simmons
2001-05-17 20:33                                   ` Kai Henningsen
2001-05-15 20:17                                 ` H. Peter Anvin
2001-05-15 21:59                                 ` Chip Salzenberg
2001-05-15 22:51                                   ` James Simmons
2001-05-15 21:22                               ` Jan Harkes
2001-05-15 21:39                               ` Martin Dalecki
2001-05-15 18:02                       ` Ingo Oeser
2001-05-15 19:31                       ` Richard Gooch
2001-05-15 19:37                         ` H. Peter Anvin
2001-05-15 20:10                         ` Alan Cox
2001-05-15 21:41                         ` Richard Gooch
2001-05-15 21:47                           ` Alexander Viro
2001-05-15 22:14                           ` Alan Cox
2001-05-15 22:24                           ` Richard Gooch
2001-05-15 22:27                             ` H. Peter Anvin
2001-05-15 22:38                             ` Alexander Viro
2001-05-15 22:28                           ` Richard Gooch
2001-05-15 22:32                             ` H. Peter Anvin
2001-05-15 22:33                             ` Alan Cox
2001-05-16  7:21                           ` Geert Uytterhoeven
2001-05-16 18:22                           ` Richard Gooch
2001-05-16 19:36                             ` H. Peter Anvin
2001-05-16 20:01                             ` Richard Gooch
2001-05-16 20:05                               ` H. Peter Anvin
2001-05-16 20:18                               ` Linus Torvalds
2001-05-16 20:44                               ` Richard Gooch
2001-05-16 20:54                               ` Richard Gooch
2001-05-16 21:36                                 ` H. Peter Anvin
2001-05-16 22:11                                   ` Ingo Oeser
2001-05-16 22:13                                     ` H. Peter Anvin
2001-05-16 22:21                                       ` Jens Axboe
2001-05-16 23:03                                     ` Richard Gooch
2001-05-16 23:25                                       ` H. Peter Anvin
2001-05-16 23:37                                       ` Richard Gooch
2001-05-16 23:38                                         ` H. Peter Anvin
2001-05-16 23:41                                         ` Richard Gooch
2001-05-16 23:43                                           ` H. Peter Anvin
2001-05-16 23:49                                           ` Richard Gooch
2001-05-16 23:55                                             ` H. Peter Anvin
2001-05-17 21:12                                             ` Kai Henningsen
2001-05-17 21:06                               ` Kai Henningsen
2001-05-16 23:51                             ` Alan Cox
2001-05-16 23:58                             ` Richard Gooch
2001-05-17  0:12                               ` H. Peter Anvin
2001-05-17  0:24                               ` Alan Cox
2001-05-17  1:35                               ` Jeff Garzik
2001-05-17  9:33                                 ` Guest section DW
2001-05-15 20:58                       ` Alan Cox
2001-05-15 21:42                       ` Chip Salzenberg
2001-05-15 21:46                         ` Alexander Viro
2001-05-15 21:57                           ` H. Peter Anvin
2001-05-15 22:07                             ` Chip Salzenberg
2001-05-15 22:11                               ` H. Peter Anvin
2001-05-15 22:18                           ` Alan Cox
2001-05-15 21:40                     ` Chip Salzenberg
2001-05-15 22:12                       ` Alan Cox
2001-05-15 22:19                         ` H. Peter Anvin
2001-05-15 22:28                           ` Alan Cox
2001-05-15 22:34                             ` H. Peter Anvin
2001-05-15 23:39                         ` Chip Salzenberg
2001-05-16 20:37                           ` Alan Cox
2001-05-15 22:49                       ` James Simmons
2001-05-15 23:22                       ` Kenneth Johansson
2001-05-15  9:28                   ` Alan Cox
2001-05-15 15:15                     ` Linus Torvalds
2001-05-15 15:19                       ` Jeff Garzik
2001-05-15 15:45                         ` Linus Torvalds
2001-05-15 17:27                           ` James Simmons
2001-05-15 17:43                             ` Linus Torvalds
2001-05-15 18:04                               ` Jeff Garzik
2001-05-15 18:15                                 ` Linus Torvalds
2001-05-15 19:36                                   ` Jonathan Lundell
2001-05-15 20:18                                     ` Linus Torvalds
2001-05-15 20:26                                       ` Dan Hollis
2001-05-15 22:14                                         ` Miles Lane
2001-05-15 21:29                                       ` Alex Bligh - linux-kernel
2001-05-15 21:36                                         ` Linus Torvalds
2001-05-15 22:03                                         ` Jeff Mahoney
2001-05-15 22:42                                         ` Andreas Dilger
2001-05-15 21:51                                       ` Mark Frazer
2001-05-15 22:35                                       ` Bob Glamm
2001-05-16  0:56                                       ` Jonathan Lundell
2001-05-16  2:31                                         ` Andrew Morton
2001-05-16  6:56                                         ` Jonathan Lundell
2001-05-16  8:02                                           ` Vojtech Pavlik
2001-05-16 12:20                                           ` Bogdan Costescu
2001-05-16 14:37                                           ` Jonathan Lundell
2001-05-16 14:57                                             ` Vojtech Pavlik
2001-05-16 15:24                                             ` Jonathan Lundell
2001-05-16  7:24                                       ` Geert Uytterhoeven
2001-05-16 23:26                                         ` Alan Cox
2001-05-16 23:31                                           ` H. Peter Anvin
2001-05-16 23:53                                             ` Linus Torvalds
2001-05-17  0:21                                             ` Alan Cox
2001-05-17  7:57                                               ` Geert Uytterhoeven
2001-05-17 16:26                                               ` James Simmons
2001-05-17  6:43                                             ` Thomas Sailer
2001-05-17 16:58                                               ` Tim Jansen
2001-05-17 17:18                                                 ` James Simmons
2001-05-17 17:29                                                   ` Geert Uytterhoeven
2001-05-17 17:41                                                   ` Tim Jansen
2001-05-17 22:03                                                 ` Oliver Neukum
2001-05-16 23:52                                           ` Linus Torvalds
2001-05-17  1:26                                           ` Joel Becker
2001-05-16 16:04                                       ` Michael Meissner
2001-05-16 21:36                                         ` Andreas Dilger
2001-05-18  2:18                                     ` Jonathan Lundell
2001-05-19 17:36                                       ` Jonathan Lundell
2001-05-20  9:37                                         ` Eric W. Biederman
2001-05-20 14:16                                         ` Chris Wedgwood
2001-05-20 15:54                                         ` Jonathan Lundell
2001-05-20 15:57                                         ` Jonathan Lundell
2001-05-19 17:45                                       ` Jonathan Lundell
2001-05-19  8:42                                     ` Kai Henningsen
2001-05-17 21:23                                   ` Kai Henningsen
2001-05-15 19:33                                 ` Kai Henningsen
2001-05-16  7:25                                 ` Geert Uytterhoeven
2001-05-15 18:19                               ` James Simmons
2001-05-15 20:23                               ` Alan Cox
2001-05-15 20:28                                 ` H. Peter Anvin
2001-05-15 21:52                               ` Andreas Dilger
2001-05-15 20:02                             ` Dan Hollis
2001-05-15 11:44               ` Neil Brown
2001-05-15 15:34                 ` Linus Torvalds
2001-05-16  1:00                   ` Daniel Phillips
2001-05-16 12:58                     ` Jens Axboe
2001-05-16  3:25                   ` Neil Brown
2001-05-15 15:51               ` John Fremlin
2001-05-14 21:09           ` Andi Kleen
2001-05-14 21:11           ` Rik van Riel
2001-05-14 21:23             ` Alan Cox
2001-05-15  0:33               ` Rik van Riel
2001-05-16  9:04                 ` Ingo Oeser
2001-05-14 21:16           ` Alan Cox
2001-05-14 22:05             ` Alexander Viro
2001-05-14 22:30               ` Alan Cox
2001-05-14 22:48                 ` Alexander Viro
2001-05-14 22:46                   ` Alan Cox
2001-05-14 22:53                     ` Alexander Viro
2001-05-14 22:54                       ` H. Peter Anvin
2001-05-14 23:00                         ` Alexander Viro
2001-05-14 22:58                           ` Alan Cox
2001-05-14 23:29                             ` Alexander Viro
2001-05-15  4:20                             ` God
2001-05-14 23:39                           ` Richard Gooch
2001-05-14 23:18                         ` Arjan van de Ven
2001-05-14 23:20                           ` Alan Cox
2001-05-15 18:57                           ` Kai Henningsen
2001-05-15  5:56                         ` Oliver Neukum
2001-05-15  5:59                           ` H. Peter Anvin
2001-05-14 22:55                       ` Alan Cox
2001-05-14 23:11                         ` Dan Hollis
2001-05-14 23:19                           ` Alan Cox
2001-05-14 23:23                         ` Alexander Viro
2001-05-15  1:10                         ` Keith Owens
2001-05-14 23:34           ` Richard Gooch
2001-05-14 21:18         ` Alan Cox
2001-05-14 23:32     ` Richard Gooch
2001-05-14 20:09 ` Richard Gooch
2001-05-14 20:14   ` Jeff Garzik
2001-05-15 17:37 ` Pavel Machek
2001-05-17 11:32   ` Alan Cox
2001-05-16 15:58 ` Kurt Garloff

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=200105170246.EAA12820@rabbit.xos.nl \
    --to=wfk@xos.nl \
    --cc=Andries.Brouwer@cwi.nl \
    --cc=linux-kernel@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).