Improve AF hard disk detection
authorBrian Behlendorf <behlendorf1@llnl.gov>
Sun, 2 Sep 2012 23:34:12 +0000 (16:34 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 15 Nov 2012 19:06:14 +0000 (11:06 -0800)
commit2404b01499019f6a8589cec79201b8871ec48081
tree0d5ee50e47a40021671213217743e1c5efbb162c
parent32a9872bbae90a7cd9793c371f558701ec268976
Improve AF hard disk detection

Use the bdev_physical_block_size() interface to determine the
minimize write size which can be issued without incurring a
read-modify-write operation.  This is used to set the ashift
correctly to prevent a performance penalty when using AF hard
disks.

Unfortunately, this interface isn't entirely reliable because
it's not uncommon for disks to misreport this value.  For this
reason you may still need to manually set your ashift with:

  zpool create -o ashift=12 ...

The solution to this in the upstream Illumos source was to add
a white list of known offending drives.  Maintaining such a list
will be a burden, but it still may be worth doing if we can
detect a large number of these drives.  This should be considered
as future work.

Reported-by: Richard Yao <ryao@cs.stonybrook.edu>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #916
config/kernel-bdev-physical-size.m4 [new file with mode: 0644]
config/kernel.m4
include/linux/blkdev_compat.h