On Sat, Apr 28 2012 at 12:51am -0400, Mike Snitzer <snitzer@xxxxxxxxxx> wrote: > On Sat, Apr 28 2012 at 12:44am -0400, > Mike Snitzer <snitzer@xxxxxxxxxx> wrote: > > > 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 do_div wrappers to support non power of 2 blocksize for the pool's > > data device. do_div provides comparable performance to the power of 2 > > math that was performed until now (as tested on modern x86_64 hardware). > > > > Verify that the pool's blocksize is a multiple of 64K and that the > > pool's data device is a multiple of blocksize. > > The non power of 2 support patch required quite a few thinp-test-suite > fixes; this works for me but there may be more clever/clean ways to > address rounding down the pool size to a multiple of blocksize... Need this too: diff --git a/pool_resize_tests.rb b/pool_resize_tests.rb index 6c8eadf..61e046f 100644 --- a/pool_resize_tests.rb +++ b/pool_resize_tests.rb @@ -50,6 +50,8 @@ class PoolResizeTests < ThinpTestCase def test_resize_no_io target_step = @size / 8 + target_step /= @data_block_size + target_step *= @data_block_size with_standard_pool(target_step) do |pool| 2.upto(8) do |n| table = Table.new(ThinPool.new(n * target_step, @metadata_dev, @data_dev, -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel