On 10/20/2011 08:47 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange@xxxxxxxxxx> 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@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list