Create ros/vmm/vmx.h, prepare to move lots of code to user mode from kernel driver.
[akaros.git] / kern / arch / x86 / Kconfig
index cb05eb7..dbff2af 100644 (file)
@@ -1,9 +1,7 @@
 config X86
+       select 64BIT
        def_bool y
 
-config X86_32
-       def_bool !64BIT
-
 config X86_64
        def_bool 64BIT
 
@@ -24,18 +22,29 @@ config NOFASTCALL_FSBASE
                setting FS base from userspace, you can say y to disable the fastcall
                for a slight improvement for all syscalls.  If unsure, say n.
 
-config FAST_COREID
-       bool "Fast core_id() via rdtscp"
+endmenu
+
+menu "x86 Hacks"
+
+config POLL_CONSOLE
+       bool "Poll Console Devices"
        default n
        help
-               Uses rdtscp for a faster core_id() call.  Requires a relatively recent
-               microarchitecture (Nehalem).  Also, in my experience, qemu's support
-               for rdtscp on some machines is a little lacking, so don't be surprised
-               if it doesn't work when virtualized.  Say n if you are unsure.
+               On some boards, we have trouble getting the serial IRQ.  This will
+               spawn ktasks for all console devices that poll every 10ms.  
 
-endmenu
+config LOUSY_LAPIC_TIMER
+       bool "Lousy Local APIC Timer"
+       default n
+       help
+               This turns our one-shot APIC timer into a periodic timer.  If your
+               system seems to lock up until you hit the keyboard, say 'Y' here and
+               report the results.
 
-menu "x86 Hacks"
+               Qemu without KVM had issues firing a one-shot LAPIC timer (the timer IRQ
+               would only go off when some other IRQ fired), but it worked with a
+               periodic tick.  Since we aggressively disarm the timer, this config
+               shouldn't be a performance hit.
 
 config NOMTRRS
        bool "Disable MTRRs"
@@ -44,13 +53,6 @@ config NOMTRRS
                Old debug option from when we were having issues with MTRRs.  If your
                machine won't boot, try turning this on.
 
-config ENABLE_MPTABLES
-       bool "Enable MP Tables"
-       default n
-       help
-               Turns on basic MP tables support.  If you want to route IRQs, you'll
-               need this, until we get around to parsing ACPI tables.
-
 config KB_CORE0_ONLY
        bool "Keyboard from core0 only"
        default n
@@ -58,4 +60,16 @@ config KB_CORE0_ONLY
                Say 'n' unless you are using a buggy x86 machine that can't handle
                polling the keyboard PIO from cores other than core 0.
 
+config X86_DISABLE_KEYBOARD
+       bool "Disable Keyboard"
+       default n
+       help
+               x86 machines with a legacy USB keyboard often implement the USB stack
+               in SMM mode.  When doing anything with the keyboard, including polling
+               the keyboard from the kernel monitor, SMM mode can dramatically
+               interfere with other cores (like a 10-15x performance impact on some
+               benchmarks).
+               
+               Say 'y' if you have such a machine and do not need the keyboard.
+
 endmenu