Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Dec 2010 19:44:53 +0100
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        Ivan Voras <ivoras@FreeBSD.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r216230 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <20101206184453.GA1936@garage.freebsd.pl>
In-Reply-To: <201012061218.oB6CI3oW032770@svn.freebsd.org>
References:  <201012061218.oB6CI3oW032770@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--lrZ03NoBR/3+SXJZ
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Dec 06, 2010 at 12:18:03PM +0000, Ivan Voras wrote:
> Author: ivoras
> Date: Mon Dec  6 12:18:02 2010
> New Revision: 216230
> URL: http://svn.freebsd.org/changeset/base/216230
>=20
> Log:
>   Use GEOM stripesize field when calculating ashift. This will enable cor=
rect
>   alignment on drives with large sector sizes (e.g. 4 KiB) but the
>   implementation might need to be revisited if devices with large stripes=
izes
>   appear (e.g. if RAID controllers or flash drives start using the field),
>   probably by introducing a physsectorsize field in GEOM providers.

Please back this out as soon as possible!

>   Discussed with: mav, mostly silence on freebsd-geom@ and freebsd-fs@

Guess why it wasn't picked up by anyone?

> Modified:
>   head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
>=20
> Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	Mon D=
ec  6 11:37:24 2010	(r216229)
> +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	Mon D=
ec  6 12:18:02 2010	(r216230)
> @@ -496,7 +496,10 @@ vdev_geom_open(vdev_t *vd, uint64_t *psi
>  	/*
>  	 * Determine the device's minimum transfer size.
>  	 */
> -	*ashift =3D highbit(MAX(pp->sectorsize, SPA_MINBLOCKSIZE)) - 1;
> +	if (pp->stripesize > pp->sectorsize)
> +		*ashift =3D highbit(MIN(pp->stripesize, SPA_MAXBLOCKSIZE)) - 1;
> +	else
> +		*ashift =3D highbit(MAX(pp->sectorsize, SPA_MINBLOCKSIZE)) - 1;

Even in this chunk there is a comment explaining perfectly what ashift
stands for!!

--=20
Pawel Jakub Dawidek                       http://www.wheelsystems.com
pjd@FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

--lrZ03NoBR/3+SXJZ
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAkz9LyUACgkQForvXbEpPzQGzgCfQMaGcITMc8XXPnD+nVk1Pgei
/MAAoKDqaJ/5bRNXzlP/wu62guEWpgcg
=icls
-----END PGP SIGNATURE-----

--lrZ03NoBR/3+SXJZ--



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