Subject: Re: The demise of DEV_BSIZE
To: Bill Sommerfeld <>
From: Ignatios Souvatzis <>
List: tech-kern
Date: 10/07/1999 11:43:39
On Wed, Oct 06, 1999 at 11:53:15PM -0400, Bill Sommerfeld wrote:
> I still don't think a convincing case has been made that
> non-power-of-two block sizes are necessary.

So, let me speak up:

- I was the original non-power-of-two proposer.
- I was thinking, at that time, of audio and video CDs with 2352 byte blocks.
  I was not aware that those are not really addressable, so this doesn't count
  (but see at the end).

- Todd Whitesel mentioned:
> Not really a proposal, but a historical note: Apple 800K disks are really 
> 528 bytes per sector; the extra 16 bytes were supposed to be used for some
> kind of disk recovery system that never saw the light of day.

The same applies to Amiga 880 and 1760k disks, with the exception that they
are not historical. However, the extra 16 bytes where never really used by
anybody, at least not in filing systems (although the AmigaOS floppy driver
has a variant of read/write operations to use them).

- One only other non-power-of-two disks I can think of, are the user-
  formattable disks in IBM machines (MVS, CMS etc), which sometimes where
  used with n*80 byte blocks, to be more efficient for punched card style
  data sets.

  I have no idea if we ever would support those machines.. afaik, they're
  segmented (not paged), right?

- Oh yes: what's about those old KA-10 washing machine disks? I vaguely 
  remember that my boss at That Job Back THen resurrected one, when the KA-10 was retired, and connected it to a VAX 11/750, and was
  able to reformat it from 36bit * N to 32bit * N blocks, so originally it
  must have had something like 512*(36/32) 576 bytes per block. Or a POT
  multiple of this.
  (I suspect we would only be able to use them formatted for the VAX, anyway,
  so they would have POT block sizes)

Now, this is for filesystem use. What about zero copy passing of non-filesystem
blocks from (say) CD reader to MPEG hardware video decoder? Would we need 
part of the block interface for it, even if we only passed streams?


 * Progress (n.): The process through which Usenet has evolved from
   smart people in front of dumb terminals to dumb people in front of
   smart terminals.  -- (obscurity)