[libvirt] virDomainMigrate, "suitable default" for omitted bandwidth parameter

Thomas Treutner thomas at scripty.at
Tue Feb 15 17:49:38 UTC 2011


Hi,

does somebody know what the following paragraph exactly means resp. what 
it should mean?

"The maximum bandwidth (in Mbps) that will be used to do migration can 
be specified with the bandwidth parameter. *If set to 0, libvirt will 
choose a suitable default*."

http://libvirt.org/html/libvirt-libvirt.html#virDomainMigrate

What is the "suitable default"? I looked through the code for qemu and 
the only call to qemuMonitorSetMigrationSpeed() I can find is in 
./src/qemu/qemu_driver.c:8406, using libvirt 0.8.7. When I remember 
correctly the second condition in a conjunction will not be evaluated if 
the first one evaluates to false? So if resource == 0, no limit will be set?

I ask because I discovered that qemu is live migrating with a hard coded 
throttle of 32MiB/s for historic reasons, which is an activated 
handbrake if you have GBit Ethernet and additionally annoying when 
thinking about qemu's broken way of live migration (no maximum amount of 
iterations, no forced action, no error message, no abortion - no 
*nothing*.). Effectively *using* GBit Ethernet often solves this problem 
as the bandwidth to transfer dirty pages is quadrupled.

Also see qemu mailing list, Message-ID: <4D52D95D.3030300 at scripty.at>

There was a short discussion on IRC where concerns of "breaking libvirt" 
when deactivating the default limit were stated. If there really are 
applications that depend on handbraked live migration, I think these 
applications just should pass the limit they need to virDomainMigrate(). 
What do you think?


regards,
-t




More information about the libvir-list mailing list