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 -=|