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>