Create ros/vmm/vmx.h, prepare to move lots of code to user mode from kernel driver.
[akaros.git] / kern / arch / x86 / Kconfig
index b18407b..dbff2af 100644 (file)
@@ -1,7 +1,11 @@
 config X86
+       select 64BIT
        def_bool y
 
-menu "x86 Hacks"
+config X86_64
+       def_bool 64BIT
+
+menu "x86 Options"
 
 config PCI_VERBOSE
        bool "Verbose PCI Output"
@@ -9,6 +13,39 @@ config PCI_VERBOSE
        help
                Will print out extra information related to PCI.
 
+config NOFASTCALL_FSBASE
+       depends on X86_64
+       bool "Disable fastcall to set FS base"
+       default n
+       help
+               Disable the fast path syscall to set FS base.  If your hardware allows
+               setting FS base from userspace, you can say y to disable the fastcall
+               for a slight improvement for all syscalls.  If unsure, say n.
+
+endmenu
+
+menu "x86 Hacks"
+
+config POLL_CONSOLE
+       bool "Poll Console Devices"
+       default n
+       help
+               On some boards, we have trouble getting the serial IRQ.  This will
+               spawn ktasks for all console devices that poll every 10ms.  
+
+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.
+
+               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"
        default n
@@ -16,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
@@ -30,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