Fixes allocb's use of mem flags
[akaros.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 5049963..8fa0228 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -9,63 +9,31 @@ config SRCARCH
        string
        option env="ARCH"
 
-source "kern/arch/$SRCARCH/Kconfig"
-
-source "kern/src/net/Kconfig"
-
-menu "Drivers"
-
-menuconfig E1000
-       depends on NETWORKING && X86
-       bool "e1000 driver"
-       default n
-       help
-               Buggy e1000 driver.  Use at your own risk.
-
-if E1000
-config E1000_MMIO_HACK
-       bool "e1000 MMIO hack"
-       default n
-       help
-               Legacy option, say 'n'.
-
-config E1000_ON_BOXBORO
-       bool "e1000 on Boxboro"
+config 64BIT
+       bool "64-bit kernel"
        default n
        help
-               Legacy option, say 'n'.
+               Say yes to build a 64-bit kernel, amd64 / x86_64, riscv64, etc.
 
-config E1000_ON_S142
-       bool "e1000 on s142"
+menuconfig RUN_INIT_SCRIPT
+       bool "Run init script after boot"
        default n
        help
-               Legacy option, say 'n'.
-
-endif # E1000
+               Run an init script after boot instead of dropping into the monitor
 
-config RL8168
-       depends on NETWORKING && X86
-       bool "Realtek 8168"
-       default n
-       help
-               Buggy realtek driver.  Use at your own risk.
+config INIT_SCRIPT_PATH_AND_ARGS
+    depends on RUN_INIT_SCRIPT
+    string "Path to init script, followed by its arguments."
+    default /bin/init.sh
+    help
+               Path to the init script run at boot time, followed by a space separated
+               list of arguments
 
-config NE2K
-       depends on NETWORKING && X86
-       bool "NE2000"
-       default n
-       help
-               Buggy NE2000 driver.  Use at your own risk.
+source "kern/arch/$SRCARCH/Kconfig"
 
-config ETH_AUDIO
-       depends on NETWORKING && X86
-       bool "Ethernet audio"
-       default n
-       help
-               Build old support for David Wessel's ethernet audio device.  This is
-               less a driver than a NIC-level "intercept".
+source "kern/src/net/Kconfig"
 
-endmenu
+source "kern/drivers/Kconfig"
 
 menu "Filesystems"
 
@@ -113,14 +81,6 @@ endmenu
 
 menu "Memory Management"
 
-config DEMAND_PAGING
-       bool "Demand paging"
-       default n
-       help
-               When turned on, mmap() calls do not immediately populate their pages.
-               This does not turn on any sort of real paging.  Saying 'n' will act
-               like all mmap()s have MAP_POPULATE.
-
 config PAGE_COLORING
        bool "Page coloring"
        default n
@@ -140,6 +100,29 @@ endmenu
 
 menu "Kernel Debugging"
 
+menu "Per-cpu Tracers"
+
+config TRACE_KMSGS
+       bool "KMSG Tracing"
+       default n
+       help
+               Turns on KMSG tracing, using the per-cpu ring buffer (holds about 256
+               events).  You can access this from the monitor via "trace pcpui".  Turn
+               this off for a slight performance improvement on every KMSG (and every
+               MCP proc_yield).
+
+config TRACE_LOCKS
+       bool "Lock Tracing"
+       depends on SPINLOCK_DEBUG
+       default n
+       help
+               Turns on lock tracing, using the per-cpu ring buffer.  This records the
+               a timestamp and lock address, in an over-write tracing style (meaning
+               it'll clobber older events).  If you have locking issues, this may give
+               you clues as to which locks were grabbed recently.
+
+endmenu
+
 config SPINLOCK_DEBUG
        bool "Spinlock debugging"
        default n
@@ -156,6 +139,14 @@ config SEQLOCK_DEBUG
                Provides asserts to detect seqlock errors.  This will allow a malicious
                userspace to trigger a panic in the kernel.
 
+config SEMAPHORE_DEBUG
+       bool "Semaphore debugging"
+       default n
+       help
+               Turns on debugging, which tracks the last time and location that a
+               semaphore was downed, and provides a linked list of all semaphores that
+               have waiters.  This will slow down all semaphore ups and downs.
+
 config RESET_STACKS
        bool "Reset Stacks"
        default y
@@ -164,6 +155,18 @@ config RESET_STACKS
                the top of the stack, abandoning its context.  This is useful so we do
                not run off the end of our stacks, but makes backtracing difficult.
 
+config LARGE_KSTACKS
+       bool "Large (two-page) Kernel Stacks"
+       default y
+       help
+               Ideally, we'd like to use single-page stacks, which are easier on the
+               memory allocator.  Some of the Plan 9 code hogs stack space, and we may
+               run off the end of a single-page stack.
+
+               Say 'y' to play it safe and use the larger, slower stacks.  Say 'n' for
+               higher performance, and mention this setting if you have any weird
+               crashes or panics.
+
 config KTHREAD_POISON
        bool "Kthread Poison Canary"
        default n
@@ -187,8 +190,23 @@ config PRINTK_NO_BACKSPACE
                One of the serial devices I was using a while back had issues printing
                backspaces.  This was an old hack to deal with that.
 
+config SYSCALL_STRING_SAVING
+       bool "Syscall string saving"
+       default n
+       help
+               Kmallocs a small buffer for each syscall and attaches it to the
+               kthread, which can be viewed when debugging semaphores.  Individual
+               syscalls can save info in this buffer.
+
 endmenu
 
+config VM
+       bool "Virtual Machine support"
+       default n
+       help
+               VM support -- not working! Based on KVM.
+
+
 menu "Misc/Old Options"
 
 config ARSC_SERVER
@@ -228,3 +246,5 @@ config BSD_ON_CORE0
                This was an old joke.  Say 'n', since we can't simply #include <bsd>.
 
 endmenu
+
+source "kern/src/ktest/Kconfig"