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

[Xen-ia64-devel] [PATCH] Remove use of hpsim console



  We've been using the hpsim console for early dom0/domU bootup.  This
provides an early boot console via Xen, but directs early boot messages
to the wrong place a for production system.  The patch below removes our
usage of the hpsim console and adds smarts to autodetect where the
console should go when not specified.  Ideally, there shouldn't be any
behavioral change other than early boot messages aren't printed out via
Xen.  As a bonus, we shouldn't need to specify a console= for domUs
using the default xencons outputs.  It's easy to cause problems
tinkering with the console setup, so please give this a test.  Comments
welcome.  Thanks,

        Alex

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---

diff -r b3ae332e6dbd linux-2.6-xen-sparse/arch/ia64/kernel/setup.c
--- a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c     Tue Feb 06 09:28:07 
2007 -0700
+++ b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c     Tue Feb 06 14:41:49 
2007 -0700
@@ -375,16 +375,6 @@ early_console_setup (char *cmdline)
 {
        int earlycons = 0;
 
-#ifdef CONFIG_XEN
-#ifndef CONFIG_IA64_HP_SIM
-       if (is_running_on_xen()) {
-               extern struct console hpsim_cons;
-               hpsim_cons.flags |= CON_BOOT;
-               register_console(&hpsim_cons);
-               earlycons++;
-       }
-#endif
-#endif
 #ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
        {
                extern int sn_serial_console_early_setup(void);
@@ -557,6 +547,45 @@ setup_arch (char **cmdline_p)
 #if !defined(CONFIG_VT) || !defined(CONFIG_DUMMY_CONSOLE)
                        conswitchp = NULL;
 #endif
+               }
+               
+               /*
+                * Add a preferred console to match xencons.  This should
+                * do the right thing on both dom0 & domU, but it depends
+                * on matching xencons behavior.
+                */
+               if (!strstr(*cmdline_p, "console=")) {
+                       char *p, *q, name[5];
+                       int offset = 0;
+
+                       if (is_initial_xendomain())
+                               strncpy(name, "ttyS", 4);
+                       else
+                               strncpy(name, "tty", 3);
+
+                       p = strstr(*cmdline_p, "xencons=");
+
+                       if (p) {
+                               p += 8;
+                               if (!strncmp(p, "ttyS", 4)) {
+                                       strncpy(name, p, 4);
+                                       p += 4;
+                                       offset = simple_strtol(p, &q, 10);
+                                       if (p == q)
+                                               offset = 0;
+                               } else if (!strncmp(p, "tty", 3) ||
+                                          !strncmp(p, "xvc", 3)) {
+                                       strncpy(name, p, 3);
+                                       p += 3;
+                                       offset = simple_strtol(p, &q, 10);
+                                       if (p == q)
+                                               offset = 0;
+                               } else if (!strncmp(p, "off", 3))
+                                       offset = -1;
+                       }
+
+                       if (offset >= 0)
+                               add_preferred_console(name, offset, NULL);
                }
        }
        xencons_early_setup();
diff -r b3ae332e6dbd linux-2.6-xen-sparse/arch/ia64/hp/sim/Makefile
--- a/linux-2.6-xen-sparse/arch/ia64/hp/sim/Makefile    Tue Feb 06 09:28:07 
2007 -0700
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#
-# ia64/platform/hp/sim/Makefile
-#
-# Copyright (C) 2002 Hewlett-Packard Co.
-#      David Mosberger-Tang <davidm@xxxxxxxxxx>
-# Copyright (C) 1999 Silicon Graphics, Inc.
-# Copyright (C) Srinivasa Thirumalachar (sprasad@xxxxxxxxxxxx)
-#
-
-obj-y := hpsim_irq.o hpsim_setup.o hpsim.o
-obj-$(CONFIG_IA64_GENERIC) += hpsim_machvec.o
-
-obj-$(CONFIG_HP_SIMETH)        += simeth.o
-obj-$(CONFIG_HP_SIMSERIAL) += simserial.o
-obj-$(CONFIG_HP_SIMSERIAL_CONSOLE) += hpsim_console.o
-obj-$(CONFIG_HP_SIMSCSI) += simscsi.o
-obj-$(CONFIG_XEN) += simserial.o
-obj-$(CONFIG_XEN) += hpsim_console.o



_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


 


Rackspace

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