]> git.proxmox.com Git - mirror_zfs-debian.git/commit
Align parition end on 1 MiB boundary
authorNed Bass <bass6@llnl.gov>
Wed, 29 Feb 2012 18:08:20 +0000 (10:08 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 5 Mar 2012 17:49:50 +0000 (09:49 -0800)
commit613d88eda89945bb0011ddc05d3bd064bf1a8e1b
tree15d24445dc675b198b50e47800e49c803264598d
parentec2626ad3f695a2ced3946c4197ef64cbcac4959
Align parition end on 1 MiB boundary

Some devices have exhibited sensitivity to the ending alignment of
partitions.  In particular, even if the first partition begins at 1
MiB, we have seen many sd driver task abort errors with certain SSDs
if the first partition doesn't end on a 1 MiB boundary.  This occurs
when the vdev label is read during pool creation or importation and
causes a delay of about 30 seconds per device.  It can also be
simulated with dd when the pool isn't imported:

  dd if=/dev/sda1 of=/dev/null bs=262144 count=1

For the record, this problem was observed with SMARTMOD
SG9XCA2E200GE01 200GB SSDs.  Unfortunately I don't have a good
explanation for this behavior. It seems to have something to do with
highly fragmented single-sector requests being issued to the device,
which it may not support.  With end-aligned partitions at least
page-sized requests were queued and issued to the driver according
to blktrace. In any case, aligning the partition end is a fairly
innocuous work-around, wasting at most 1 MiB of space.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #574
lib/libzfs/libzfs_pool.c