From: Andries.Brouwer@cwi.nl
To: alan@lxorguk.ukuu.org.uk, torvalds@transmeta.com
Cc: linux-kernel@vger.kernel.org
Subject: Re: Linux/Pro -- clusters
Date: Sat, 8 Dec 2001 01:50:17 GMT [thread overview]
Message-ID: <UTC200112080150.BAA195557.aeb@cwi.nl> (raw)
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
> > For those of us who want to run a standards based operating system can
> > you do the 32bit dev_t.
>
> You asked for an _internal_ data structure. dev_t is the external
> representation, and has _nothing_ to do with any drivers at all.
The internal representation is kdev_t, which wants to turn into a pointer
from what Aeb has been saying for a long time.
Yes and no. If I am not mistaken there are three details:
(i) Linus prefers to separate block and character devices.
I agree that that makes the code a bit cleaner, but dislike
the code duplication: the interface to user space, the allocation,
deallocation, registering is completely identical for the two.
But apparently Linus does not mind a little bloat if that avoids
an ugly cast in two or three places.
(ii) So, we split kdev_t into kbdev_t and kcdev_t.
Al (and/or Linus) baptizes the struct that a kbdev_t is pointing at
"struct block_device". I usually had a two-layer version, with
device_struct and driver_struct, while struct genhd disappeared.
Don't know whether Al has similar ideas.
The current struct block_device is an ordered pair (dev_t, ops *)
and does not seem to give easy access to the partitions, so maybe Al
still has to reshuffle things a bit, or add a pointer to a struct genhd.
We'll see.
(iii) The past months Al has been nibbling away a little at the road
that makes kdev_t (or kbdev_t or so) a pointer to a device_struct.
Instead it looks like he wants to construct a parallel and equivalent
road starting from the already present basis for a struct block_device.
So, yes, internally we'll have a pointer. No, it doesnt look like
the name of the pointer will be kdev_t.
No doubt Linus or Al or somebody will correct me if the above is all wrong.
A 32bit "dev_t" is needed so that we can label over 65536 file systems
to things like ls, regardless of how
"/dev/sdfoo" is mapped onto a driver
I'm sure that dev_t (the cookie we feed to user space) going to 32bits is
going to break something and I'd rather it broke early
Yes, that is an entirely independent matter.
User space uses a 64bit cookie today, and the kernel throws away
three quarters of that. Very little breaks if the kernel throws away less.
[As you know I like a large dev_t, and Linus hated it before he understood
the use of a large dev_t. (For example, he worried that an "ls" would take
many centuries.) Don't know about current opinions. Such a lot of nice
applications: use any device description you like, take a cryptographic
hash and have a device number. Or, generate a new anonymous device by
incrementing a counter. Or, support full NFS.
It would really be a pity to go only to 32 bits. Indeed, 32 bits is
large but not large enough to be collision-free for random assignments,
so one would need a registry of numbers. With a much larger device
number the registry is superfluous.]
Andries
next reply other threads:[~2001-12-08 1:51 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-08 1:50 Andries.Brouwer [this message]
2001-12-08 3:42 ` Linux/Pro -- clusters H. Peter Anvin
-- strict thread matches above, loose matches on Subject: below --
2001-12-10 23:33 Andries.Brouwer
2001-12-10 22:48 Andries.Brouwer
2001-12-10 21:31 Andries.Brouwer
2001-12-10 21:44 ` Alan Cox
2001-12-10 19:51 Andries.Brouwer
2001-12-10 20:34 ` Alan Cox
2001-12-10 19:36 Andries.Brouwer
2001-12-10 22:55 ` Alexander Viro
2001-12-09 8:59 Andries.Brouwer
2001-12-10 16:49 ` Alexander Viro
2001-12-10 17:09 ` Alan Cox
2001-12-11 8:39 ` Albert D. Cahalan
2001-12-08 17:26 Andries.Brouwer
2001-12-09 4:22 ` Linus Torvalds
2001-12-09 5:49 ` Alexander Viro
2001-12-03 18:12 Donald Becker
2001-12-04 1:55 ` Davide Libenzi
2001-12-04 2:09 ` Donald Becker
2001-12-04 2:23 ` Davide Libenzi
2001-12-04 2:34 ` Alexander Viro
2001-12-04 9:10 ` Alan Cox
2001-12-04 9:30 ` Thomas Langås
2001-12-04 9:45 ` Alan Cox
2001-12-04 11:34 ` Thomas Langås
2001-12-05 21:57 ` Linus Torvalds
2001-12-05 23:05 ` Andre Hedrick
2001-12-06 4:31 ` Daniel Phillips
2001-12-05 23:49 ` Alan Cox
2001-12-05 23:48 ` Andre Hedrick
2001-12-06 16:58 ` Linus Torvalds
2001-12-06 18:02 ` Alan Cox
2001-12-06 18:07 ` Linus Torvalds
2001-12-06 18:12 ` Kai Henningsen
2001-12-06 20:46 ` Linus Torvalds
2001-12-06 22:40 ` Alan Cox
2001-12-06 18:33 ` Alan Cox
2001-12-06 18:55 ` Linus Torvalds
2001-12-06 19:19 ` Alan Cox
2001-12-06 20:37 ` Linus Torvalds
2001-12-06 22:35 ` Alan Cox
2001-12-06 22:34 ` Linus Torvalds
2001-12-06 22:58 ` Alexander Viro
2001-12-07 10:14 ` Martin Dalecki
2001-12-07 10:37 ` Alan Cox
2001-12-07 10:56 ` Martin Dalecki
2001-12-07 12:08 ` Alan Cox
2001-12-06 18:38 ` Doug Ledford
2001-12-04 14:37 ` Daniel Phillips
2001-12-04 15:19 ` Jeff Garzik
2001-12-04 17:16 ` Daniel Phillips
2001-12-04 17:20 ` Jeff Garzik
2001-12-04 18:04 ` Alan Cox
2001-12-04 18:16 ` Daniel Phillips
2001-12-04 20:20 ` Andrew Morton
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=UTC200112080150.BAA195557.aeb@cwi.nl \
--to=andries.brouwer@cwi.nl \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/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