Chris Wright wrote:
> 
> This should not be needed, the console should be xcv0, completely decoupled
> from serial.

You've made the whole thing even more complicated with the last commit.
Enabling VT is possible now.  Good.  No way around that.  The kernel
hangs now though.  Fix is attached:  better don't try to setup the vga
console for xen guests which don't have the hardware.

Next problem:  The default for xencons (tty) conflicts with the virtual
consoles.  I'm tempted to drop the complete xencons=foobar stuff into
the waste basket and leave in xencons=xvc only.  And maybe xencons=off.
 xencons=tty conflicts with the VT subsystem.  xencons=ttyS conflicts
with the serial driver.  Disabling the offending drivers is completely
out of question for a kernel which is supposed to work both native and
paravirtualized.

One more issue:  What should be the default console?  Right now it is
the vt console (using the dummy device).  Not very good.  vgacon doesn't
work.  fbcon doesn't work either (yet).  So you'll end up with a
non-functional console by default.  Bummer.

cheers,
  Gerd

-- 
Gerd Hoffmann <[EMAIL PROTECTED]>
Index: paravirt-2.6.20-rc4-hg699/arch/i386/kernel/setup.c
===================================================================
--- paravirt-2.6.20-rc4-hg699.orig/arch/i386/kernel/setup.c
+++ paravirt-2.6.20-rc4-hg699/arch/i386/kernel/setup.c
@@ -61,6 +61,7 @@
 #include <asm/ist.h>
 #include <asm/io.h>
 #include <asm/vmi.h>
+#include <asm/hypervisor.h>
 #include <setup_arch.h>
 #include <bios_ebda.h>
 
@@ -651,12 +652,17 @@ void __init setup_arch(char **cmdline_p)
        e820_register_memory();
 
 #ifdef CONFIG_VT
-#if defined(CONFIG_VGA_CONSOLE)
-       if (!efi_enabled || (efi_mem_type(0xa0000) != EFI_CONVENTIONAL_MEMORY))
-               conswitchp = &vga_con;
-#elif defined(CONFIG_DUMMY_CONSOLE)
+#if defined(CONFIG_DUMMY_CONSOLE)
        conswitchp = &dummy_con;
 #endif
+#if defined(CONFIG_VGA_CONSOLE)
+       if (efi_enabled && (efi_mem_type(0xa0000) == EFI_CONVENTIONAL_MEMORY))
+               goto novga;
+       if (is_running_on_xen() && !is_initial_xendomain())
+               goto novga;
+       conswitchp = &vga_con;
+novga:
+#endif
 #endif
        tsc_init();
 }
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/virtualization

Reply via email to