[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] libxl: default to xenconsoled for pv guests, even if qemu is running

On Wed, 2012-04-25 at 11:49 +0100, Stefano Stabellini wrote:

> I would be OK with that, maybe it is worth adding a comment on
> libxl__need_xenpv_qemu to document the behavior.


# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1335351300 -3600
# Node ID 28f86b71782a099c0373fb237e6b08e0788ff69d
# Parent  02f0161ae6201ded5415e7f0c92214b4783c8d72
libxl: default to xenconsoled for pv guests, even if qemu is running.

Currently we prefer to use qemu for the disk backend if we are starting qemu
anyway (e.g. to service a disk).

Unfortunately qemu doesn't log the console, which xenconsoled can do via
XENCONSOLED_TRACE=guest. Since xenconsoled is also running anyway it seems like
there is no particular reason to prefer qemu just because it happens to be

However we must use qemu if thereis more than one console (xenconsoled only
supports a single console).

Therefore push the logic to change the console backend down into
libxl__need_xenpv_qemu so that it can do the right thing.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

I'm not sure if this is 4.2 material, perhaps too late to be making this sort
of change?

diff -r 02f0161ae620 -r 28f86b71782a tools/libxl/libxl_create.c
--- a/tools/libxl/libxl_create.c        Wed Apr 25 11:30:58 2012 +0100
+++ b/tools/libxl/libxl_create.c        Wed Apr 25 11:55:00 2012 +0100
@@ -682,9 +682,6 @@ static int do_domain_create(libxl__gc *g
                 d_config->num_vfbs, d_config->vfbs,
                 d_config->num_disks, &d_config->disks[0]);
-        if (need_qemu)
-             console.consback = LIBXL__CONSOLE_BACKEND_IOEMU;
         libxl__device_console_add(gc, domid, &console, &state);
diff -r 02f0161ae620 -r 28f86b71782a tools/libxl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c    Wed Apr 25 11:30:58 2012 +0100
+++ b/tools/libxl/libxl_dm.c    Wed Apr 25 11:55:00 2012 +0100
@@ -1093,7 +1093,13 @@ int libxl__need_xenpv_qemu(libxl__gc *gc
     int i, ret = 0;
+    /*
+     * qemu is required in order to support 2 or more consoles. So switch all
+     * backends to qemu if this is the case
+     */
     if (nr_consoles > 1) {
+        for (i = 0; i < nr_consoles; i++)
+            consoles[i].consback = LIBXL__CONSOLE_BACKEND_IOEMU;
         ret = 1;
         goto out;

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.