qemu-iotests/199: change discard patterns
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>
This commit is contained in:
parent
edb90bbdf3
commit
31e3827913
|
@ -30,6 +30,28 @@ size = '256G'
|
||||||
fifo = os.path.join(iotests.test_dir, 'mig_fifo')
|
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):
|
def event_seconds(event):
|
||||||
return event['timestamp']['seconds'] + \
|
return event['timestamp']['seconds'] + \
|
||||||
event['timestamp']['microseconds'] / 1000000.0
|
event['timestamp']['microseconds'] / 1000000.0
|
||||||
|
@ -80,9 +102,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
|
||||||
self.vm_b_events = []
|
self.vm_b_events = []
|
||||||
|
|
||||||
def test_postcopy(self):
|
def test_postcopy(self):
|
||||||
discard_size = 0x40000000
|
|
||||||
granularity = 512
|
granularity = 512
|
||||||
chunk = 4096
|
|
||||||
|
|
||||||
result = self.vm_a.qmp('block-dirty-bitmap-add', node='drive0',
|
result = self.vm_a.qmp('block-dirty-bitmap-add', node='drive0',
|
||||||
name='bitmap', granularity=granularity)
|
name='bitmap', granularity=granularity)
|
||||||
|
@ -92,14 +112,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
|
||||||
node='drive0', name='bitmap')
|
node='drive0', name='bitmap')
|
||||||
empty_sha256 = result['return']['sha256']
|
empty_sha256 = result['return']['sha256']
|
||||||
|
|
||||||
s = 0
|
apply_discards(self.vm_a, discards1 + discards2)
|
||||||
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
|
|
||||||
|
|
||||||
result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
|
result = self.vm_a.qmp('x-debug-block-dirty-bitmap-sha256',
|
||||||
node='drive0', name='bitmap')
|
node='drive0', name='bitmap')
|
||||||
|
@ -111,10 +124,8 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
|
||||||
result = self.vm_a.qmp('block-dirty-bitmap-clear', node='drive0',
|
result = self.vm_a.qmp('block-dirty-bitmap-clear', node='drive0',
|
||||||
name='bitmap')
|
name='bitmap')
|
||||||
self.assert_qmp(result, 'return', {})
|
self.assert_qmp(result, 'return', {})
|
||||||
s = 0
|
|
||||||
while s < discard_size:
|
apply_discards(self.vm_a, discards1)
|
||||||
self.vm_a.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
|
|
||||||
s += 0x10000
|
|
||||||
|
|
||||||
caps = [{'capability': 'dirty-bitmaps', 'state': True},
|
caps = [{'capability': 'dirty-bitmaps', 'state': True},
|
||||||
{'capability': 'events', 'state': True}]
|
{'capability': 'events', 'state': True}]
|
||||||
|
@ -134,10 +145,7 @@ class TestDirtyBitmapPostcopyMigration(iotests.QMPTestCase):
|
||||||
event_resume = self.vm_b.event_wait('RESUME')
|
event_resume = self.vm_b.event_wait('RESUME')
|
||||||
self.vm_b_events.append(event_resume)
|
self.vm_b_events.append(event_resume)
|
||||||
|
|
||||||
s = 0x8000
|
apply_discards(self.vm_b, discards2)
|
||||||
while s < discard_size:
|
|
||||||
self.vm_b.hmp_qemu_io('drive0', 'discard %d %d' % (s, chunk))
|
|
||||||
s += 0x10000
|
|
||||||
|
|
||||||
match = {'data': {'status': 'completed'}}
|
match = {'data': {'status': 'completed'}}
|
||||||
event_complete = self.vm_b.event_wait('MIGRATION', match=match)
|
event_complete = self.vm_b.event_wait('MIGRATION', match=match)
|
||||||
|
|
Loading…
Reference in a new issue