Subject: Re: dev_t changes & partitions
To: Bill Studenmund <wrstuden@loki.stanford.edu>
From: Todd Vierling <tv@NetBSD.ORG>
List: tech-kern
Date: 01/13/1998 22:06:00
On Tue, 13 Jan 1998, Bill Studenmund wrote:

: > Well, I've already determined (at least for me) that it's so hairy to allow
: > a system to boot on old /dev nodes.  I'd love to be proven wrong, but after
: > two days of looking at the screen and oodles of printed kernel source, I
: > have decided that it is much easier for kernel hackers and end users to
: > upgrade /dev just before rebooting into a new kernel.

And I think I was wrong.  I misunderstood Charles (mycroft)'s explanation of
specinfo and I'm now compiling a kernel with 16 and 32 bit device
preliminary support (16 bit number == 32 bit number).  I'll post the results
and diffs tomorrow.  Knock on wood!

: Hmm. Well, I'd still vote we change the minor split when we change
: dev_t's. That way we rebuild devices only once. :-)

Okay, I'll do this... does 16/4/4 (or 16/8) sound reasonable?  The
conversion 16bit->32bit, of course, would assume slice `0' for our purposes.

: > This format provides for 4096 units per device.  (Sound decent enough...?) 
: > As long as we stick with the sequential-numbering device format, it is a
: > good match. 
: 
: Hmmm. I guess 8 bits would be fine per drive.
: 
: Though who, other than MBR drives, will use slices? I thought other
: disklabels will just have oodles of partitions.

Amiga (inside RDB structure).  SPARC (SunOS label not big enough?).  Others?

On Tue, 13 Jan 1998, Chris G. Demetriou wrote:

: Yes.  I think it's reasonable to do this the way BSDI did, i.e. use a
: dv_unit and dv_subunit.

Why, really?  I can see different numbers of bits needed for different
things in various devices in the future (perhaps 16/4/4 here, but maybe
8/12/4 elsewhere?), and I'd think that just a binary encoded number is
adequate to hold everything.  The only reason I'd see need for three pieces
is if we actually had two layers of abstraction in the devsw--that is, each
entry is a pointer to a table of devsw entry _arrays_.  Otherwise, we only
need one value for minor and splitting it could make it numerically
confusing.

=====
===== Todd Vierling (Personal tv@pobox.com) =====
== "There's a myth that there is a scarcity of justice to go around, so
== that if we extend justice to 'those people,' it will somehow erode the
== quality of justice everyone else receives."  -- Maria Price