[dm-devel] thinp-test-suite: support for non power of 2 pool blocksize
Mike Snitzer
snitzer at redhat.com
Sat Apr 28 15:32:46 UTC 2012
On Sat, Apr 28 2012 at 12:51am -0400,
Mike Snitzer <snitzer at redhat.com> wrote:
> On Sat, Apr 28 2012 at 12:44am -0400,
> Mike Snitzer <snitzer at redhat.com> 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,
More information about the dm-devel
mailing list