strace: Qstrace controls whether tracing is on
[akaros.git] / kern / arch / x86 / Kconfig
index b18407b..274f217 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,19 +13,38 @@ config PCI_VERBOSE
        help
                Will print out extra information related to PCI.
 
-config NOMTRRS
-       bool "Disable MTRRs"
+config NOFASTCALL_FSBASE
+       depends on X86_64
+       bool "Disable fastcall to set FS base"
        default n
        help
-               Old debug option from when we were having issues with MTRRs.  If your
-               machine won't boot, try turning this on.
+               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.
 
-config ENABLE_MPTABLES
-       bool "Enable MP Tables"
+endmenu
+
+menu "x86 Hacks"
+
+config LOUSY_LAPIC_TIMER
+       bool "Lousy Local APIC Timer"
        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.
+               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 y
+       help
+               Old debug option from when we were having issues with MTRRs.  If your
+               machine won't boot, try turning this on.
 
 config KB_CORE0_ONLY
        bool "Keyboard from core0 only"
@@ -30,4 +53,26 @@ 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.
+
+config ENABLE_LEGACY_USB
+       bool "Enable Legacy USB"
+       default n
+       help
+               Say 'y' if you want to use a USB keyboard.  Given that we do not have a
+               USB stack, disabling legacy USB means USB keyboards will not work.  We
+               disable legacy USB by default, since our primary console communication
+               is serial, and legacy USB support results in SMM interference that
+               affects all cores.
+
 endmenu