x86: option to disable the keyboard
[akaros.git] / kern / arch / x86 / Kconfig
index b18407b..f15a4a7 100644 (file)
@@ -1,7 +1,13 @@
 config X86
        def_bool y
 
-menu "x86 Hacks"
+config X86_32
+       def_bool !64BIT
+
+config X86_64
+       def_bool 64BIT
+
+menu "x86 Options"
 
 config PCI_VERBOSE
        bool "Verbose PCI Output"
@@ -9,6 +15,28 @@ 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.
+
+config FAST_COREID
+       bool "Fast core_id() via rdtscp"
+       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.
+
+endmenu
+
+menu "x86 Hacks"
+
 config NOMTRRS
        bool "Disable MTRRs"
        default n
@@ -30,4 +58,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