qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 15/22] qemu-iotests/199: improve performance: set bitmap b


From: Andrey Shinkevich
Subject: Re: [PATCH v2 15/22] qemu-iotests/199: improve performance: set bitmap by discard
Date: Wed, 19 Feb 2020 17:17:16 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1

On 17/02/2020 18:02, Vladimir Sementsov-Ogievskiy wrote:
Discard dirties dirty-bitmap as well as write, but works faster. Let's
use it instead.

Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
  tests/qemu-iotests/199 | 31 ++++++++++++++++++++-----------
  1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/tests/qemu-iotests/199 b/tests/qemu-iotests/199
index 6599fc6fb4..d78f81b71c 100755
--- a/tests/qemu-iotests/199
+++ b/tests/qemu-iotests/199
@@ -67,8 +67,10 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
          os.mkfifo(fifo)
          qemu_img('create', '-f', iotests.imgfmt, disk_a, size)
          qemu_img('create', '-f', iotests.imgfmt, disk_b, size)
-        self.vm_a = iotests.VM(path_suffix='a').add_drive(disk_a)
-        self.vm_b = iotests.VM(path_suffix='b').add_drive(disk_b)
+        self.vm_a = iotests.VM(path_suffix='a').add_drive(disk_a,
+                                                          'discard=unmap')
+        self.vm_b = iotests.VM(path_suffix='b').add_drive(disk_b,
+                                                          'discard=unmap')
          self.vm_b.add_incoming("exec: cat '" + fifo + "'")
          self.vm_a.launch()
          self.vm_b.launch()
@@ -78,7 +80,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
          self.vm_b_events = []
def test_postcopy(self):
-        write_size = 0x40000000
+        discard_size = 0x40000000
          granularity = 512
          chunk = 4096
@@ -86,25 +88,32 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
                                 name='bitmap', granularity=granularity)
          self.assert_qmp(result, 'return', {})
+ result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
+                               node='drive0', name='bitmap')
+        empty_sha256 = result['return']['sha256']
+
          s = 0
-        while s < write_size:
-            self.vm_a.hmp_qemu_io('drive0', 'write %d %d' % (s, chunk))
+        while s < discard_size:
+            self.vm_a.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
              s += 0x10000
          s = 0x8000
-        while s < write_size:
-            self.vm_a.hmp_qemu_io('drive0', 'write %d %d' % (s, chunk))
+        while s < discard_size:
+            self.vm_a.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
              s += 0x10000
result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
                                 node='drive0', name='bitmap')
          sha256 = result['return']['sha256']
+ # Check, that updating the bitmap by discards works
+        assert sha256 != empty_sha256
+
          result = self.vm_a.qmp('block-dirty-bitmap-clear', node='drive0',
                                 name='bitmap')
          self.assert_qmp(result, 'return', {})
          s = 0
-        while s < write_size:
-            self.vm_a.hmp_qemu_io('drive0', 'write %d %d' % (s, chunk))
+        while s < discard_size:
+            self.vm_a.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
              s += 0x10000
caps = [{'capability': 'dirty-bitmaps', 'state': True},
@@ -126,8 +135,8 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
          self.vm_b_events.append(e_resume)
s = 0x8000
-        while s < write_size:
-            self.vm_b.hmp_qemu_io('drive0', 'write %d %d' % (s, chunk))
+        while s < discard_size:
+            self.vm_b.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
              s += 0x10000
match = {'data': {'status': 'completed'}}


Reviewed-by: Andrey Shinkevich <address@hidden>
--
With the best regards,
Andrey Shinkevich



reply via email to

[Prev in Thread] Current Thread [Next in Thread]