* src/qemu_conf.c, src/qemu_conf.h: Use -vga or -std-vga
when starting guests if video card is present
* tests/qemuhelptest.c: Change to use constants instead
of hardcoded hex numbers, and add VGA support
* tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml,
tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.args,
tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml,
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.args,
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml,
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml,
tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml,
tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml: Add <video>
element for testing graphics adapter
* tests/qemuxml2argvtest.c: Add QEMUD_CMD_FLAG_VGA flag
* tests/qemuxml2xmltest.c: Add missing graphics-vnc-sasl/tls tests
Rather than numerous instances of:
emulator = vm->def->emulator;
if (!emulator)
emulator = virDomainDefDefaultEmulator(conn, vm->def, driver->caps);
if (!emulator)
return -1;
Set this value at XML parse time in the domain config, so we can depend on
it for all future emulator accesses. There were unchecked accesses in the
qemu driver that were tripping up on this if no emulator was specified in
the XML, see:
http://www.redhat.com/archives/libvir-list/2008-October/msg00602.html
Certain drivers always need an 'emulator' specified in the XML (qemu and lxc
at least). Store this info in capabilities.
We will eventually use this to move default emulator handling out of
drivers and into domain_conf.*
The KVM version string can be one of the following:
- qemu-kvm-x.y.z in stable releases
- kvm-XX for kvm versions up to kvm-85
- qemu-kvm-devel-XX for kvm version kvm-86 and later
There are only a few of places where we need to detect
differences between KVM versions based on 0.9.1:
1) VNET_HDR introduced in kvm-74
2) -incoming tcp introduced in kvm-79
3) -incoming exec introduced in kvm-80
4) -incoming stdio in all earlier kvm versions
With qemu-kvm-0.10.x, we can now assume that (1) is available
if it's a KVM release, (2) and (3) is always available and
(4) is never available.
So, from now on we should only need to check the qemu version
number and the "is_kvm" flag for detecting feature availability.
We only need the KVM version number for older releases.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
This patch is purely re-factoring without any functional changes
to make way for the next patch.
The main thing achieved by the refactoring is that we now have
easier access to the parenthesised string that KVM folks seem
to delight in changing.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
* src/qemu_conf.c docs/schemas/domain.rng
tests/capabilityschemadata/caps-qemu-kvm.xml: PPC Qemu Machine Type
changed from g3bw to g3beige some time ago, patch by Thomas Baker
Daniel
virExec will write out the pid of the daemonized process only. Use this
in the QEMU driver, rather than QEMU's pidfile, so we can catch errors we
might miss if the emulator bails early.
* src/domain_conf.c src/domain_conf.h: parse and save multiple
graphics elements instead of one, patch by Pritesh Kothari
* src/qemu_conf.c src/qemu_driver.c: adapt the qemu/kvm driver for
the new structures, patch by Pritesh Kothari
* src/xend_internal.c src/xm_internal.c: same thing for Xen drivers
Daniel
Seems like a simple typo - it has been "format=" since the flag
was introduced, but we added it as "fmt=".
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
* docs/schemas/domain.rng src/domain_conf.c src/domain_conf.h
src/qemu_conf.c
tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-product.xml:
adds a new <hostdev managed='(yes|no)'> property
to host devices indicating whether or not we should
automatically dettach/reset, patch by Mark McLoughlin
daniel
* src/qemu_conf.c (uname_normalize): New function, factored out of...
(qemudBuildCommandLine): ...here. Use the new function.
(qemudExtractVersion): Use it here, rather than hard-coding "i686".
IFF_VNET_HDR is a tun/tap flag that allows you to send and receive
large (i.e. GSO) packets and packets with partial checksums. Setting
the flag means that every packet is proceeded by the same header which
virtio uses to communicate GSO/csum metadata.
By enabling this flag on the tap fds we create, we greatly increase
the achievable throughput with virtio_net.
However, we need to be careful to only set the flag when a) QEMU has
support for this ABI and b) the value of the flag is queryable using
the TUNGETIFF ioctl.
It's nearly five months since kvm-74 - the first KVM release with this
feature - was released. Up until now, we've not added libvirt support
because there is no clean way to detect support for this in QEMU at
runtime. A brief attempt to add a "info capabilities" monitor command
to QEMU floundered. Perfect is the enemy of good enough. Probing the
KVM version will suffice for now.
Signed-off-by: Mark McLoughlin <markmc@redhat.com>