]> git.baikalelectronics.ru Git - kernel.git/commit
dm thin: support for non power of 2 pool blocksize
authorMike Snitzer <snitzer@redhat.com>
Fri, 27 Jul 2012 14:08:02 +0000 (15:08 +0100)
committerAlasdair G Kergon <agk@redhat.com>
Fri, 27 Jul 2012 14:08:02 +0000 (15:08 +0100)
commit9c8dd9b26405d5c1daed921d44c7245e40e805cc
tree4428d66325bdc8d4f25a374e10b5a78cb0ab3e54
parentd81921de6038e15e1065040d850a2611a2e72580
dm thin: support for non power of 2 pool blocksize

Non power of 2 blocksize support is needed to properly align thinp IO
on storage that has non power of 2 optimal IO sizes (e.g. RAID6 10+2).

Use sector_div to support non power of 2 blocksize for the pool's
data device.  This provides comparable performance to the power of 2
math that was performed until now (as tested on modern x86_64 hardware).

The kernel currently assumes that limits->discard_granularity is a power
of two so the thin target only enables discard support if the block
size is a power of two.

Eliminate pool structure's 'block_shift', 'offset_mask' and
remaining 4 byte holes.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
drivers/md/dm-thin.c