
2010/5/3 Charles Duffy <charles@dyfis.net>:
...or more particularly, in ram_bytes_remaining() called by do_info_migrate(); oddly, this is much more pronounced when running with <emulator> pointing at a shim prepending -no-kvm-irqchip to the invoked command line.
This VM was intended to be paused for the save event (if my software was doing its job correctly), so we shouldn't be spending time running the guest CPU and writing updates for already-once-written blocks.
I'm seeing much more CPU time spent inside qemu-kvm than in the exec'd lzop process compressing and writing the data stream; on attaching gdb and taking some stack traces to sample where execution time was spent, it appeared that we were spending our time responding to requests from the monitor.
The question then -- is the 50ms poll in qemuDomainWaitForMigrationComplete (called from qemudDomainSave) perhaps too frequent?
Thanks!
What's the libvirt version? Maybe the "Poll for migration end every 50ms instead of 50us" [1] commit (part of 0.8.1) fixes your problem, if you're currently using libvirt < 0.8.1. [1] http://libvirt.org/git/?p=libvirt.git;a=commit;h=e2c059485cf062bf1f906623703... Matthias