Message ID | 20210113140616.150283-7-mreitz@redhat.com |
---|---|
State | New |
Headers | show |
Series | iotests/129: Fix it | expand |
On 1/13/21 8:06 AM, Max Reitz wrote: > Issuing 'stop' on the VM drains all nodes. If the mirror job has many > large requests in flight, this may lead to significant I/O that looks a > bit like the job is being drained. > > We can limit the I/O in flight by limiting the buffer size, so mirror > will make very little progress during the 'stop' drain. > > (We do not need to do anything about commit, which has a buffer size of > 512 kB by default; or backup, which goes cluster by cluster. Once we > have asynchronous requests for backup, that will change, but then we can > fine-tune the backup job to only perform a single request on a very > small chunk, too.) > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > tests/qemu-iotests/129 | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Eric Blake <eblake@redhat.com> > > diff --git a/tests/qemu-iotests/129 b/tests/qemu-iotests/129 > index e6753c90ef..c3ad584ba2 100755 > --- a/tests/qemu-iotests/129 > +++ b/tests/qemu-iotests/129 > @@ -69,7 +69,7 @@ class TestStopWithBlockJob(iotests.QMPTestCase): > def test_drive_mirror(self): > self.do_test_stop("drive-mirror", device="drive0", > target=self.target_img, format=iotests.imgfmt, > - sync="full") > + sync="full", buf_size=65536) > > def test_drive_backup(self): > self.do_test_stop("drive-backup", device="drive0", >
13.01.2021 17:06, Max Reitz wrote: > Issuing 'stop' on the VM drains all nodes. If the mirror job has many > large requests in flight, this may lead to significant I/O that looks a > bit like the job is being drained. what do you mean by "looks like the job is being drained"? If "drain" in Qemu means "flush all in-flight requests, and don't create more during the drain", then job is exactly "drained" during the drain.. do you mean, that it looks like "job trying to finish copying the whole drive"? Or "job hangs", or "stop hangs"... > > We can limit the I/O in flight by limiting the buffer size, so mirror > will make very little progress during the 'stop' drain. > > (We do not need to do anything about commit, which has a buffer size of > 512 kB by default; or backup, which goes cluster by cluster. Once we > have asynchronous requests for backup, that will change, but then we can > fine-tune the backup job to only perform a single request on a very > small chunk, too.) OK > > Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > --- > tests/qemu-iotests/129 | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tests/qemu-iotests/129 b/tests/qemu-iotests/129 > index e6753c90ef..c3ad584ba2 100755 > --- a/tests/qemu-iotests/129 > +++ b/tests/qemu-iotests/129 > @@ -69,7 +69,7 @@ class TestStopWithBlockJob(iotests.QMPTestCase): > def test_drive_mirror(self): > self.do_test_stop("drive-mirror", device="drive0", > target=self.target_img, format=iotests.imgfmt, > - sync="full") > + sync="full", buf_size=65536) > > def test_drive_backup(self): > self.do_test_stop("drive-backup", device="drive0", >
diff --git a/tests/qemu-iotests/129 b/tests/qemu-iotests/129 index e6753c90ef..c3ad584ba2 100755 --- a/tests/qemu-iotests/129 +++ b/tests/qemu-iotests/129 @@ -69,7 +69,7 @@ class TestStopWithBlockJob(iotests.QMPTestCase): def test_drive_mirror(self): self.do_test_stop("drive-mirror", device="drive0", target=self.target_img, format=iotests.imgfmt, - sync="full") + sync="full", buf_size=65536) def test_drive_backup(self): self.do_test_stop("drive-backup", device="drive0",
Issuing 'stop' on the VM drains all nodes. If the mirror job has many large requests in flight, this may lead to significant I/O that looks a bit like the job is being drained. We can limit the I/O in flight by limiting the buffer size, so mirror will make very little progress during the 'stop' drain. (We do not need to do anything about commit, which has a buffer size of 512 kB by default; or backup, which goes cluster by cluster. Once we have asynchronous requests for backup, that will change, but then we can fine-tune the backup job to only perform a single request on a very small chunk, too.) Signed-off-by: Max Reitz <mreitz@redhat.com> --- tests/qemu-iotests/129 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)