blocksizes

Hello,
disk devices are accessed in units of 'blocks', a block can be
any size, however NetBSD makes assumptions in many places that
a block is 512 bytes or DEV_BSIZE bytes which makes it impossible
to use devices with different block sizes.
IMHO there need to be three different ways to specify block
offsets and block counts:
1. in units of blocks of the physical device
2. in units of blocks of DEV_BSIZE bytes
3. in bytes
and we need to establish what units are used where.
One possible path to support devices where physical blocks are
not of size DEV_BSIZE would be
- device drivers use 1.
- wedges use 1.
- the dk driver translates between 1. and 2.
- the buffer system uses 2. and 3.
Filesystems can be pretty agnostic to this as any multiple of DEV_BSIZE
will work (but slower if not properly aligned to the physical block size).
The necessary changes are rather small. In particular, dkwedge_info needs
to be extended to keep track of the physical sector size so that the dk
driver can do the transformations.
Comments?
--
Michael van Elst
Internet: mlelstv%serpens.de@localhost
"A potential Snark may lurk in every tree."
--
--
Michael van Elst
Internet: mlelstv%serpens.de@localhost
"A potential Snark may lurk in every tree."