1c1
< $FreeBSD: head/sys/geom/notes 110592 2003-02-09 17:04:57Z phk $
---
> $FreeBSD: head/sys/geom/notes 110710 2003-02-11 14:57:34Z phk $
88a89,118
> -----------------------------------------------------------------------
> maxsize, stripesize and stripeoffset
>
> maxsize is the biggest request we are willing to handle. If not
> set there is no upper bound on the size of a request and the code
> is responsible for chopping it up. Only hardware methods should
> set an upper bound in this field. Geom_disk will inherit the upper
> bound set by the device driver.
>
> stripesize is the width of any natural request boundaries for the
> device. This would be the width of a stripe on a raid-5 unit or
> one zone in GBDE. The idea with this field is to hint to clustering
> type code to not trivially overrun these boundaries.
>
> stripeoffset is the amount of the first stripe which lies before the
> devices beginning.
>
> If we have a device with 64k stripes:
> [0...64k[
> [64k...128k[
> [128k..192k[
> Then it will have stripesize = 64k and stripeoffset = 0.
>
> If we put a MBR on this device, where slice#1 starts on sector#63,
> then this slice will have: stripesize = 64k, stripeoffset = 63 * sectorsize.
>
> If the clustering code wants to widen a request which writes to
> sector#53 of the slice, it can calculate how many bytes till the end of
> the stripe as:
> stripewith - (53 * sectorsize + stripeoffset) % stripewidth.
< $FreeBSD: head/sys/geom/notes 110592 2003-02-09 17:04:57Z phk $
---
> $FreeBSD: head/sys/geom/notes 110710 2003-02-11 14:57:34Z phk $
88a89,118
> -----------------------------------------------------------------------
> maxsize, stripesize and stripeoffset
>
> maxsize is the biggest request we are willing to handle. If not
> set there is no upper bound on the size of a request and the code
> is responsible for chopping it up. Only hardware methods should
> set an upper bound in this field. Geom_disk will inherit the upper
> bound set by the device driver.
>
> stripesize is the width of any natural request boundaries for the
> device. This would be the width of a stripe on a raid-5 unit or
> one zone in GBDE. The idea with this field is to hint to clustering
> type code to not trivially overrun these boundaries.
>
> stripeoffset is the amount of the first stripe which lies before the
> devices beginning.
>
> If we have a device with 64k stripes:
> [0...64k[
> [64k...128k[
> [128k..192k[
> Then it will have stripesize = 64k and stripeoffset = 0.
>
> If we put a MBR on this device, where slice#1 starts on sector#63,
> then this slice will have: stripesize = 64k, stripeoffset = 63 * sectorsize.
>
> If the clustering code wants to widen a request which writes to
> sector#53 of the slice, it can calculate how many bytes till the end of
> the stripe as:
> stripewith - (53 * sectorsize + stripeoffset) % stripewidth.