qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 4/7] iotests/129: Use throttle node


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH 4/7] iotests/129: Use throttle node
Date: Wed, 13 Jan 2021 20:05:03 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

13.01.2021 20:02, Max Reitz wrote:
On 13.01.21 17:46, Vladimir Sementsov-Ogievskiy wrote:
13.01.2021 17:06, Max Reitz wrote:
Throttling on the BB has not affected block jobs in a while, so it is
possible that one of the jobs in 129 finishes before the VM is stopped.
We can fix that by running the job from a throttle node.

Signed-off-by: Max Reitz <mreitz@redhat.com>
---
  tests/qemu-iotests/129 | 39 +++++++++++++++------------------------
  1 file changed, 15 insertions(+), 24 deletions(-)

diff --git a/tests/qemu-iotests/129 b/tests/qemu-iotests/129
index dd23bb2e5a..febc806398 100755
--- a/tests/qemu-iotests/129
+++ b/tests/qemu-iotests/129
@@ -32,20 +32,18 @@ class TestStopWithBlockJob(iotests.QMPTestCase):
          iotests.qemu_img('create', '-f', iotests.imgfmt, self.test_img,
                           "-b", self.base_img, '-F', iotests.imgfmt)
          iotests.qemu_io('-f', iotests.imgfmt, '-c', 'write -P0x5d 1M 128M', 
self.test_img)
-        self.vm = iotests.VM().add_drive(self.test_img)
+        self.vm = iotests.VM()
+        self.vm.add_object('throttle-group,id=tg0,x-bps-total=1024')
+
+        source_drive = 'driver=throttle,' + \
+                       'throttle-group=tg0,' + \
+                      f'file.driver={iotests.imgfmt},' + \
+                      f'file.file.filename={self.test_img}'

python has a "c-like" string "concatenation", i.e., you may omit "+" operators 
(I don't know is it a good practice, but I do so:)

OK, why not.

+
+        self.vm.add_drive(None, source_drive)
          self.vm.launch()
      def tearDown(self):
-        params = {"device": "drive0",
-                  "bps": 0,
-                  "bps_rd": 0,
-                  "bps_wr": 0,
-                  "iops": 0,
-                  "iops_rd": 0,
-                  "iops_wr": 0,
-                 }
-        result = self.vm.qmp("block_set_io_throttle", conv_keys=False,
-                             **params)
          self.vm.shutdown()
          for img in (self.test_img, self.target_img, self.base_img):
              iotests.try_remove(img)
@@ -53,33 +51,26 @@ class TestStopWithBlockJob(iotests.QMPTestCase):
      def do_test_stop(self, cmd, **args):
          """Test 'stop' while block job is running on a throttled drive.
          The 'stop' command shouldn't drain the job"""
-        params = {"device": "drive0",
-                  "bps": 1024,
-                  "bps_rd": 0,
-                  "bps_wr": 0,
-                  "iops": 0,
-                  "iops_rd": 0,
-                  "iops_wr": 0,
-                 }
-        result = self.vm.qmp("block_set_io_throttle", conv_keys=False,
-                             **params)
-        self.assert_qmp(result, 'return', {})
          result = self.vm.qmp(cmd, **args)
          self.assert_qmp(result, 'return', {})
+
          result = self.vm.qmp("stop")
          self.assert_qmp(result, 'return', {})
          result = self.vm.qmp("query-block-jobs")
+
          self.assert_qmp(result, 'return[0]/status', 'running')
          self.assert_qmp(result, 'return[0]/ready', False)
+        self.vm.qmp("block-job-cancel", device="drive0", force=True)

won't hurt, but I'd drop it as unrelated to commit

+
      def test_drive_mirror(self):
          self.do_test_stop("drive-mirror", device="drive0",
-                          target=self.target_img,
+                          target=self.target_img, format=iotests.imgfmt,
                            sync="full")

this doesn't seem need/related too..

It is, because without a @format parameter, the job uses the driver of @device 
as the output format.  That driver is now 'throttle', which doesn’t work as a 
format.


Ah, understand now, OK.


--
Best regards,
Vladimir



reply via email to

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