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
running.
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@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
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);
libxl__device_console_dispose(&console);
{
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;
}