On 10/20/2011 08:47 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange(a)redhat.com>
While Xen only has a single paravirt console, UML, and
QEMU both support multiple paravirt consoles. The LXC
driver can also be trivially made to support multiple
consoles. This patch extends the XML to allow multiple
<console> elements in the XML. It also makes the UML
and QEMU drivers support this config.
See my earlier question about documenting this in docs/formatdomain.html.in.
+++ b/src/qemu/qemu_process.c
@@ -1112,8 +1112,8 @@ qemuProcessFindCharDevicePTYsMonitor(virDomainObjPtr vm,
paths, chardevfmt)< 0)
return -1;
- if (vm->def->console&&
- qemuProcessLookupPTYs(&vm->def->console, 1, paths, chardevfmt)<
0)
+ if (qemuProcessLookupPTYs(vm->def->consoles, vm->def->nconsoles,
+ paths, chardevfmt)< 0)
Does qemuProcessLookupPTYs behave if vm->def->nconsoles is 0 (we
previously skipped calling it if there were no consoles, so you may need
to skip calling it here in the same situation).
+++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-virtio-auto.args
@@ -1,6 +1,7 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
-pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -monitor \
-unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -device \
+pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev \
+socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon \
+chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device \
Is this conversion from '-monitor' to '-device -mon' intentional? I
think its okay, but wonder if it should have been split into a separate
patch, since it has nothing to do with consoles.
+++ b/tests/qemuxml2argvdata/qemuxml2argv-console-virtio.args
@@ -1,6 +1,7 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M \
-pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -monitor \
-unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -device \
+pc -m 214 -smp 1 -nographic -nodefconfig -nodefaults -chardev \
+socket,id=charmonitor,path=/tmp/test-monitor,server,nowait -mon \
+chardev=charmonitor,id=monitor,mode=readline -no-acpi -boot c -device \
virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 -hda \
/dev/HostVG/QEMUGuest1 -chardev pty,id=charconsole0 -device virtconsole,\
chardev=charconsole0,id=console0 -usb -device virtio-balloon-pci,id=balloon0,\
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index a7ae925..2d158cf 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -471,11 +471,13 @@ mymain(void)
DO_TEST("channel-guestfwd", false,
QEMU_CAPS_CHARDEV, QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG);
DO_TEST("channel-virtio", false,
- QEMU_CAPS_DEVICE, QEMU_CAPS_NODEFCONFIG);
+ QEMU_CAPS_DEVICE, QEMU_CAPS_CHARDEV, QEMU_CAPS_NODEFCONFIG);
Ah, I see - you altered the flags being passed, which is why the .args
files had to change. It makes sense that you need QEMU_CAPS_CHARDEV for
console-virtio-many to work, and you just made the other tests
consistent; still, my observation above about splitting just this part
of the tests change into a separate commit might help.
ACK once you resolve the qemuProcessLookupPTYs question.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org