
On Fri, Jun 22, 2007 at 02:34:05AM +0100, Daniel P. Berrange wrote:
The work to refactor the QEMU driver to use the regular libvirt driver API is now complete. The next 20 (!) patches provide fairly fine-grained steps refactoring the code. Aside from that which adds an event loop, and the very last one, they should all be pretty much straightforward refactoring with no functional change.
With this patch series fully applied there is now only a single daemon which can serve both remote & QEMU drivers in one go, with no deadlock issues.
BTW, as a rough comparison of the old QEMU impl vs the new one in terms of performance, here are the timings for listing active guests 10000 times over Original QEMU code: time virsh --connect qemu:///system < src/data > /dev/null real 0m0.963s user 0m0.246s sys 0m0.540s New generic remote code: time ./src/virsh --connect qemu:///system < src/data > /dev/null real 0m1.142s user 0m0.470s sys 0m0.377s Which is easily close enough to ignore the difference New generic remote code using plain TCP localhost: time ./src/virsh --connect qemu+tcp://localhost/system < src/data > /dev/null real 0m1.857s user 0m0.543s sys 0m0.779s New generic remote code using TLS localhost: time ./src/virsh --connect qemu://localhost/system < src/data > /dev/null real 0m5.031s user 0m1.814s sys 0m1.303s New generic remote code using SSH localhost: time ./virsh --connect qemu+ssh://localhost/system < data > /dev/null real 0m5.987s user 0m0.621s sys 0m1.147s So there's a non-trivial hit from doing TLS/SSH. Only 0.25s is accounted for by the initial handshake / negotiation. Still, small price to pay for having data security of course... Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|