Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Dec 1997 04:02:08 -0700 (MST)
From:      bgingery@gtcs.com
To:        mike@smith.net.au
Cc:        hackers@FreeBSD.ORG
Subject:   Re: blocksize on devfs entries (and related) 
Message-ID:  <199712131102.EAA20340@home.gtcs.com>
In-Reply-To: <199712130848.TAA01888@word.smith.net.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On 13 Dec, Mike Smith wrote:
[munch]
-} >      2.  physical layout (sect/track, tracks/cyl) also needs to
-} >         be stored for any DASD.  Also any OTHER known info which
-} >         may be used to optimize the filesystem building process for
-} >         the device, such as rotational speed, seek timing ..  If
-} >         this is not stored with driver info in the devfs, then
-} >         some pointer or common reference point should be made to
-} >         the "file entry" that contains the info.
-} 
-} Physical layout is a joke, and has been for many years.  This 
-} suggestion costs you a lot of credibility.

    Physical layout *is* a joke for devices that do their own controller
   mapping.  Yet I have yet to see anything cast in silicon that never
   needs any rework nor possibility of innovation.  Whenever we throw
   away information, it's gone - PERIOD, unless it's stored *somewhere*.
   Now, the physical layout is (at least theoretically) pollable for
   some devices.  What I'm saying is don't throw away the POSSIBILITY
   of storing and using this information in an orderly way.

    Call it "cost of credibility" if you will, and point to me as an
   anachronism if you wish to flame.  The "Maintenance Free" automotive
   battery and the "never-LLF IDE drive" still have a lot in common -
   and both could have been produced by a certain company I'd choose
   not to mention by name, as it's marketing hype consistently does NOT
   match reality.

    I've already suffered some drivers that PRESUME the rotational speed
   and then optimize a filesystem for that supposed rotational vs bus
   speed, with a resulting significant decrease in performance from a
   bad interleave.  I don't have any problem whatsoever in extrapolating
   that to a loss of traditional disktab ns,nt,nc,sc,su, sk, cs, hs,
   and il values for even POTENTIAL use.  To me it's no wiser than
   ignoring (or eliminating) the rm value.

NO DISKTAB INTEGRATION WITH DEVFS?

   Perhaps they don't belong in devfs stored values.  Yet these values
   are DEVICE dependent, not filesystem dependent, hence I raised the
   question.  When re-inventing device handling, it's wise, perhaps,
   to not ignore portions of it, even if the answer is "leave that part
   alone".
   
[munch]
-} >      3.  If at the controller level it is possible to concatinate
-} >         or RAID join devices, that information needs to be stored
-} >         for the device.  If this is intrinsic to the device driver
-} >         or the physical device - no matter.
[followed up with]
-} An upper layer may well want to take advantage of, or precautions in
-} light of, the construction of the extent(s) with which it is presented.
   

-} >      6.  When a device is opened ro, if the underlying hardware has
-} >         ANY indication that it's a ro open, then if it is later upgraded
-} >         there should at least be a hook for it to be notified that it
-} >         has been upgraded.  Current state (ro/rw) should be avaialable
-} >         to user processes without "testing it by opening a write file"
-} >         to a filesystem (or even raw device). 
-} 
-} The RO->RW upgrade notification is a contentious issue, but one that 
-} definitely needs thinking through.  How would you suggest it be 
-} handled?  Should the standard be to reopen the device, or pass a 
-} special ioctl, or add a new device entrypoint?

   To me, an IOCTL and flag would be tighter than different entry
   points for ro vs rw.  Not necessarily tighter code, but tighter
   management.

[munch poorly stated description and accurate answer Re: vnode fs]

-} >   Yet, why deny these the optimization information which will allow
-} >   them to map (within the constraints of their architecture) a new
-} >   filesystem for best throughput, if it's actually available.
-} 
-} Because any "optimisation information" that you could pass them would 
-} be wrong.  Any optimisation attempting to operate based on incorrect 
-} parameters can only be a pessimisation. 

    Why must it be wrong?


-} >   Now let me raise some additional questions --
-} > 
-} > 
-} >        Should a DASD be mappable ONLY with horizontal slices?
-} >    With what we're all doing today, it seems that taking a certain
-} >    number of cylinders for slices is best - but other access methods
-} >    may find an underlying physical structure more convenient if
-} >    a slice specifies a range of heads and cylinders that do NOT
-} >    presume that all heads/cylinders from starting to ending according
-} >    to physical layout are part of the same slice.  It may be quite
-} >    convenient to have a cluster of heads across physical devices
-} >    forming a logical device or slice, without fully dedicating those
-} >    physical devices to that use.
-} 
-} This is a nonsense question in the context of ZBR and "logical extent" 
-} devices (eg. SCSI, ATAPI, most ATA devices).

      Okay, but not those which expose that info and allow direct
      control.  Across the Free *n?x lines we're seeing more and more
      antique resurrections - even if that's the ONLY place this could
      be used accurately.

-} 
-} >        And, I'll mention again, DISK formats are not the only
-} >    random-access mass-storage formats on the horizon!  I'm guessing
-} >    that for speed of inclusion into product lines, all will emulate
-} >    a disk drive - but that may not be the most efficient way of using
-} >    them (in fact, probably not).  They also can be expected to have
-} >    "direct access" methods according to their physical architecture,
-} >    with some form of tree-access the MOST efficient!
-} 
-} In most cases, the internal architecture of the device will be 
-} optimised for two basic operations; retrieval of large contiguous 
-} extents, and read/write of small randomly scattered regions.
-} 
-} Data access patterns are unlikely to change radically, particularly 
-} given the momentum that modern systems have.  I'll let you work out 
-} what the two above are, and why they are so common.  But trust me, they 
-} are.

     Oh, you needn't point out the obvious.  I'm not talking about that.
     
     I'm talking about handling more and more-varied informational
     content and relationships, AND the potential of non-magnetic,
     optical DASD devices, whether they're raw stabilized gel or 
     impregnated porous glass - both of which are on the horizon; the
     former in the US, and (I understand, partially by reading between
     the lines), the latter in Israel.  Raw storage capacity with
     approximately chip density (speaking of 3-d space taken) is too
     big a leap to stay out of the reach of "Free *n?x using users".

     Except for "delay lines", silicon-based domain-migration technology
     hasn't proven very useful, yet it set some thinking going which
     SHOULD prove useful in optical solid state memories. Just because
     you see "Data access patterns .. unlikely to change radically"
     doesn't mean that we won't see it happening.  Of course we're 
     going to keep those two traditional data transfer modes.  I'm
     pointing out that just those TWO such modes aren't the all-to-end-
     all, especially when we start eliminating rotational and seek
     delays from devices used for the same purpose.

	Bruce Gingery	<bgingery@gtcs.com>







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199712131102.EAA20340>