Bug 1453093
Summary: | "block-job-set-speed" does not take effect when setting it to 1 first and then a normal value like 100000000 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Qianqian Zhu <qizhu> |
Component: | qemu-kvm-rhev | Assignee: | John Snow <jsnow> |
Status: | CLOSED ERRATA | QA Contact: | Gu Nini <ngu> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 7.4 | CC: | chayang, jen, jsnow, juzhang, knoel, lolyu, mrezanin, virt-maint, xfu |
Target Milestone: | rc | Keywords: | Regression |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-rhev-2.12.0-1.el7 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2018-11-01 11:01:10 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1473046, 1558351 |
Description
Qianqian Zhu
2017-05-22 07:00:36 UTC
The problem is that when speed is set to '1', QEMU transmits a block of data and then realizes it has gone over quota, and so goes to sleep until the average rate/sec would come back under quota, in this case, 20-30 minutes in the future. When setting the new throttle, we don't recalculate this delay. I'll fix upstream, but I don't believe this to be a regression. qemu-kvm-rhev-2.6.0-27.el7.x86_64 has no this issue, so this is a regression. reproduced in block mirror version info of selected component: Kernel-3.10.0-709.el7 qemu-kvm-rhev-2.9.0-16.el7_4.6 AMD Opteron(tm) Processor 6344 guest: RHEL7.4 steps: 1. boot up a guest ... -drive file=/home/test/test.qcow2,format=qcow2,if=none,cache=none,werror=stop,rerror=stop,id=img0 \ -device virtio-blk-pci,bus=pci.0,addr=0x2,drive=img0,id=virtio-disk0,bootindex=1 \ ... 2. do block mirror with initial speed set to 100 { "execute": "drive-mirror", "arguments": { "device": "img0", "target": "/home/test/mirror1.qcow2", "format": "qcow2", "mode": "absolute-paths", "sync": "full", "on-source-error": "stop", "on-target-error": "stop", "speed": 100 } } 3. increase speed to 1000000000 { "execute": "block-job-set-speed", "arguments": { "device": "img0", "speed": 1000000000} } 4. query block job status (qemu) info block-jobs Actual result: qemu) info block-jobs Type mirror, device img0: Completed 16842752 of 4562747392 bytes, speed limit 1000000000 bytes/s (qemu) info block-jobs Type mirror, device img0: Completed 16842752 of 4562747392 bytes, speed limit 1000000000 bytes/s (qemu) info block-jobs Type mirror, device img0: Completed 16842752 of 4562747392 bytes, speed limit 1000000000 bytes/s (qemu) info block-jobs Type mirror, device img0: Completed 16842752 of 4562747392 bytes, speed limit 1000000000 bytes/s ... The offset paused for a certain period. Due to changes in the way block job sleep is implemented upstream in 2.11, this problem is now pretty easy to fix, so I've posted a patch upstream. [subtext: this fix will require late 2.11-cycle fixes to backport.] https://lists.gnu.org/archive/html/qemu-devel/2017-12/msg01899.html Fixed upstream: aa9ef2e65bed6a8f1709e0523fc856ec08beb657 blockjob: kick jobs on set-speed and amended in https://lists.gnu.org/archive/html/qemu-devel/2018-03/msg03956.html which will be in 2.12. --js Fixed in 2.12 There was indeed a regression upstream that made the mirror job in particular ignore ratelimits. It has been backported in a proposed fix for an otherwise unrelated BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1572856 The patch in question is: https://lists.gnu.org/archive/html/qemu-devel/2018-04/msg03865.html Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2018:3443 |