[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 05/23] char: optionally redirect {, g}printk output to QEMU debug log
From: Matt Wilson <msw@xxxxxxxxxx> When using Vixen, it is helpful to get the Xen messages in a separate channel than the console output. Add an option to output to the QEMU backdoor logging port. Signed-off-by: Matt Wilson <msw@xxxxxxxxxx> --- v1 -> v2 - #ifdef for !x86_64 --- xen/drivers/char/console.c | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c index 19d0e74..0f85707 100644 --- a/xen/drivers/char/console.c +++ b/xen/drivers/char/console.c @@ -85,6 +85,11 @@ static int __read_mostly sercon_handle = -1; static DEFINE_SPINLOCK(console_lock); +/* send all printk output to QEMU debug log. Input does not change, + * nor does dom0 output. + */ +static bool_t __read_mostly qemu_debug = false; + /* * To control the amount of printing, thresholds are added. * These thresholds correspond to the XENLOG logging levels. @@ -560,14 +565,36 @@ long do_console_io(int cmd, int count, XEN_GUEST_HANDLE_PARAM(char) buffer) static bool_t console_locks_busted; +#if defined(__x86_64__) +static void qemu_putstr(const char *str) +{ + char c; + while ( (c = *str++) != '\0' ) + { + outb(c, 0x12); + } +} +#else +static void qemu_putstr(const char *str) +{ +} +#endif + static void __putstr(const char *str) { ASSERT(spin_is_locked(&console_lock)); - sercon_puts(str); - video_puts(str); + if ( qemu_debug ) + { + qemu_putstr(str); + } + else + { + sercon_puts(str); + video_puts(str); - conring_puts(str); + conring_puts(str); + } if ( !console_locks_busted ) tasklet_schedule(¬ify_dom0_con_ring_tasklet); @@ -762,6 +789,8 @@ void __init console_init_preirq(void) p++; if ( !strncmp(p, "vga", 3) ) video_init(); + else if ( !strncmp(p, "qemu", 4) ) + qemu_debug = true; else if ( !strncmp(p, "none", 4) ) continue; else if ( (sh = serial_parse_handle(p)) >= 0 ) -- 1.9.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |