* [Qemu-devel] [PATCH] iotests: Test unaligned blocking mirror write
@ 2019-08-05 11:35 Max Reitz
2019-08-05 12:44 ` Vladimir Sementsov-Ogievskiy
2019-08-05 15:59 ` Max Reitz
0 siblings, 2 replies; 3+ messages in thread
From: Max Reitz @ 2019-08-05 11:35 UTC (permalink / raw)
To: qemu-block
Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, John Snow, qemu-devel,
Max Reitz
Signed-off-by: Max Reitz <mreitz@redhat.com>
---
Hi, this is a test for the mirror bug Vladimir found. Naturally, it
depends on some patch to fix it.
Based-on: <20190802185830.74648-1-vsementsov@virtuozzo.com>
---
tests/qemu-iotests/151 | 25 +++++++++++++++++++++++++
tests/qemu-iotests/151.out | 4 ++--
2 files changed, 27 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/151 b/tests/qemu-iotests/151
index 1bb74d67c4..ad7359fc8d 100755
--- a/tests/qemu-iotests/151
+++ b/tests/qemu-iotests/151
@@ -114,6 +114,31 @@ class TestActiveMirror(iotests.QMPTestCase):
def testActiveIOFlushed(self):
self.doActiveIO(True)
+ def testUnalignedActiveIO(self):
+ # Fill the source image
+ result = self.vm.hmp_qemu_io('source', 'write -P 1 0 2M')
+
+ # Start the block job (very slowly)
+ result = self.vm.qmp('blockdev-mirror',
+ job_id='mirror',
+ filter_node_name='mirror-node',
+ device='source-node',
+ target='target-node',
+ sync='full',
+ copy_mode='write-blocking',
+ buf_size=(1048576 // 4),
+ speed=1)
+ self.assert_qmp(result, 'return', {})
+
+ # Start an unaligned request to a dirty area
+ result = self.vm.hmp_qemu_io('source', 'write -P 2 %i 1' % (1048576 + 42))
+
+ # Let the job finish
+ result = self.vm.qmp('block-job-set-speed', device='mirror', speed=0)
+ self.assert_qmp(result, 'return', {})
+ self.complete_and_wait(drive='mirror')
+
+ self.potential_writes_in_flight = False
if __name__ == '__main__':
diff --git a/tests/qemu-iotests/151.out b/tests/qemu-iotests/151.out
index fbc63e62f8..8d7e996700 100644
--- a/tests/qemu-iotests/151.out
+++ b/tests/qemu-iotests/151.out
@@ -1,5 +1,5 @@
-..
+...
----------------------------------------------------------------------
-Ran 2 tests
+Ran 3 tests
OK
--
2.21.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] iotests: Test unaligned blocking mirror write
2019-08-05 11:35 [Qemu-devel] [PATCH] iotests: Test unaligned blocking mirror write Max Reitz
@ 2019-08-05 12:44 ` Vladimir Sementsov-Ogievskiy
2019-08-05 15:59 ` Max Reitz
1 sibling, 0 replies; 3+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2019-08-05 12:44 UTC (permalink / raw)
To: Max Reitz, qemu-block; +Cc: Kevin Wolf, John Snow, qemu-devel
05.08.2019 14:35, Max Reitz wrote:
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
> Hi, this is a test for the mirror bug Vladimir found. Naturally, it
> depends on some patch to fix it.
>
> Based-on: <20190802185830.74648-1-vsementsov@virtuozzo.com>
> ---
> tests/qemu-iotests/151 | 25 +++++++++++++++++++++++++
> tests/qemu-iotests/151.out | 4 ++--
> 2 files changed, 27 insertions(+), 2 deletions(-)
>
> diff --git a/tests/qemu-iotests/151 b/tests/qemu-iotests/151
> index 1bb74d67c4..ad7359fc8d 100755
> --- a/tests/qemu-iotests/151
> +++ b/tests/qemu-iotests/151
> @@ -114,6 +114,31 @@ class TestActiveMirror(iotests.QMPTestCase):
> def testActiveIOFlushed(self):
> self.doActiveIO(True)
>
> + def testUnalignedActiveIO(self):
> + # Fill the source image
> + result = self.vm.hmp_qemu_io('source', 'write -P 1 0 2M')
2M of ones
> +
> + # Start the block job (very slowly)
> + result = self.vm.qmp('blockdev-mirror',
> + job_id='mirror',
> + filter_node_name='mirror-node',
> + device='source-node',
> + target='target-node',
> + sync='full',
> + copy_mode='write-blocking',
> + buf_size=(1048576 // 4),
> + speed=1)
> + self.assert_qmp(result, 'return', {})
> +
> + # Start an unaligned request to a dirty area
> + result = self.vm.hmp_qemu_io('source', 'write -P 2 %i 1' % (1048576 + 42))
write only one byte, but unset the whole granularity chunk in bitmap, so it would be
skipped from sequential mirroring loop, and final image comparison will fail
> +
> + # Let the job finish
> + result = self.vm.qmp('block-job-set-speed', device='mirror', speed=0)
> + self.assert_qmp(result, 'return', {})
> + self.complete_and_wait(drive='mirror')
> +
> + self.potential_writes_in_flight = False
>
>
> if __name__ == '__main__':
> diff --git a/tests/qemu-iotests/151.out b/tests/qemu-iotests/151.out
> index fbc63e62f8..8d7e996700 100644
> --- a/tests/qemu-iotests/151.out
> +++ b/tests/qemu-iotests/151.out
> @@ -1,5 +1,5 @@
> -..
> +...
> ----------------------------------------------------------------------
> -Ran 2 tests
> +Ran 3 tests
>
> OK
>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Not putting now tested-by as we didn't decide what is the base. However, I've
checked that new test-case fails on master.
--
Best regards,
Vladimir
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH] iotests: Test unaligned blocking mirror write
2019-08-05 11:35 [Qemu-devel] [PATCH] iotests: Test unaligned blocking mirror write Max Reitz
2019-08-05 12:44 ` Vladimir Sementsov-Ogievskiy
@ 2019-08-05 15:59 ` Max Reitz
1 sibling, 0 replies; 3+ messages in thread
From: Max Reitz @ 2019-08-05 15:59 UTC (permalink / raw)
To: qemu-block
Cc: Kevin Wolf, Vladimir Sementsov-Ogievskiy, John Snow, qemu-devel
[-- Attachment #1.1: Type: text/plain, Size: 555 bytes --]
On 05.08.19 13:35, Max Reitz wrote:
> Signed-off-by: Max Reitz <mreitz@redhat.com>
> ---
> Hi, this is a test for the mirror bug Vladimir found. Naturally, it
> depends on some patch to fix it.
>
> Based-on: <20190802185830.74648-1-vsementsov@virtuozzo.com>
> ---
> tests/qemu-iotests/151 | 25 +++++++++++++++++++++++++
> tests/qemu-iotests/151.out | 4 ++--
> 2 files changed, 27 insertions(+), 2 deletions(-)
Thanks for the review, applied to my block branch:
https://git.xanclic.moe/XanClic/qemu/commits/branch/block
Max
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-08-05 16:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-05 11:35 [Qemu-devel] [PATCH] iotests: Test unaligned blocking mirror write Max Reitz
2019-08-05 12:44 ` Vladimir Sementsov-Ogievskiy
2019-08-05 15:59 ` Max Reitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).