On 2012年12月03日 11:39, hzguanqiang wrote:
On 2012-12-03 10:33, Osier wrote:
>On 2012年11月28日 16:34, hzguanqiang wrote:
>> Hi, guys.
>> I want to change block I/O throttle using 'virsh blkdeviotune' with vm
>> not running, it reported an error:
>> # virsh blkdeviotune instance-000000dc /dev/loop0 --total-bytes-sec
>> 20000000 --total-iops-sec 20 --config
>> error: Unable to change block I/O throttle
>> error: unsupported configuration: block I/O throttling not supported
>> with this QEMU binary
>> I can do this when the vm is running. Is it a bug? How can I fix this
>> problem.
>
>It just looks strange, as you can tune when the VM is active. Because
>the qemu capabilities is collected during the qemu driver starts up,
>which is independant with the domain states.
>
>Probably you will want to debug the qemu capabilities collecting
>process.
>
>Osier
Osier, Firstly, thanks for your reply.
The situation is that I want to resize the disk and meanwhile reset the
block I/O throttle. And during the whole process, The vm is stopped.
I've found this was directly caused by the patch "qemu: reject
blockiotune if qemu too old" post by Eric Blake long before. I've sent
an email to ask him the reason. Maybe, People think you can't set I/O
throtting if vm not started, I guess.
Eric's path is good, because it makes no sense to set block IO tune
for inactive guest if the qemu doesn't support it, otherwise the guest
will fails to start.
The key point is why the IO tuning can be set when the guest is active,
while fails when it's inactive. Because the qemu caps is not related
with the domain states.
Regards,
Osier