Skip to content

Commit

Permalink
qemu-iotests/199: change discard patterns
Browse files Browse the repository at this point in the history
iotest 199 works too long because of many discard operations. At the
same time, postcopy period is very short, in spite of all these
efforts.

So, let's use less discards (and with more interesting patterns) to
reduce test timing. In the next commit we'll increase postcopy period.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Tested-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200727194236.19551-6-vsementsov@virtuozzo.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
  • Loading branch information
Vladimir Sementsov-Ogievskiy authored and ebblake committed Jul 27, 2020
1 parent edb90bb commit 31e3827
Showing 1 changed file with 26 additions and 18 deletions.
44 changes: 26 additions & 18 deletions tests/qemu-iotests/199
Expand Up @@ -30,6 +30,28 @@ size = '256G'
fifo = os.path.join(iotests.test_dir, 'mig_fifo')


GiB = 1024 * 1024 * 1024

discards1 = (
(0, GiB),
(2 * GiB + 512 * 5, 512),
(3 * GiB + 512 * 5, 512),
(100 * GiB, GiB)
)

discards2 = (
(3 * GiB + 512 * 8, 512),
(4 * GiB + 512 * 8, 512),
(50 * GiB, GiB),
(100 * GiB + GiB // 2, GiB)
)


def apply_discards(vm, discards):
for d in discards:
vm.hmp_qemu_io('drive0', 'discard {} {}'.format(*d))


def event_seconds(event):
return event['timestamp']['seconds'] + \
event['timestamp']['microseconds'] / 1000000.0
Expand Down Expand Up @@ -80,9 +102,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
self.vm_b_events = []

def test_postcopy(self):
discard_size = 0x40000000
granularity = 512
chunk = 4096

result = self.vm_a.qmp('block-dirty-bitmap-add', node='drive0',
name='bitmap', granularity=granularity)
Expand All @@ -92,14 +112,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
node='drive0', name='bitmap')
empty_sha256 = result['return']['sha256']

s = 0
while s < discard_size:
self.vm_a.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
s += 0x10000
s = 0x8000
while s < discard_size:
self.vm_a.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
s += 0x10000
apply_discards(self.vm_a, discards1 + discards2)

result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
node='drive0', name='bitmap')
Expand All @@ -111,10 +124,8 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
result = self.vm_a.qmp('block-dirty-bitmap-clear', node='drive0',
name='bitmap')
self.assert_qmp(result, 'return', {})
s = 0
while s < discard_size:
self.vm_a.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
s += 0x10000

apply_discards(self.vm_a, discards1)

caps = [{'capability': 'dirty-bitmaps', 'state': True},
{'capability': 'events', 'state': True}]
Expand All @@ -134,10 +145,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
event_resume = self.vm_b.event_wait('RESUME')
self.vm_b_events.append(event_resume)

s = 0x8000
while s < discard_size:
self.vm_b.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
s += 0x10000
apply_discards(self.vm_b, discards2)

match = {'data': {'status': 'completed'}}
event_complete = self.vm_b.event_wait('MIGRATION', match=match)
Expand Down

0 comments on commit 31e3827

Please sign in to comment.