Removes stray cocci file
[akaros.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 7501cec..551d1cd 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -11,9 +11,23 @@ config SRCARCH
 
 config 64BIT
        bool "64-bit kernel"
 
 config 64BIT
        bool "64-bit kernel"
+       default y
+       help
+               Say yes to build a 64-bit kernel.  Must be 'y' for x86.
+
+menuconfig RUN_INIT_SCRIPT
+       bool "Run init script after boot"
        default n
        help
        default n
        help
-               Say yes to build a 64-bit kernel, amd64 / x86_64, riscv64, etc.
+               Run an init script after boot instead of dropping into the monitor
+
+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
 
 source "kern/arch/$SRCARCH/Kconfig"
 
 
 source "kern/arch/$SRCARCH/Kconfig"
 
@@ -67,14 +81,6 @@ endmenu
 
 menu "Memory Management"
 
 
 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
 config PAGE_COLORING
        bool "Page coloring"
        default n
@@ -94,6 +100,8 @@ endmenu
 
 menu "Kernel Debugging"
 
 
 menu "Kernel Debugging"
 
+menu "Per-cpu Tracers"
+
 config TRACE_KMSGS
        bool "KMSG Tracing"
        default n
 config TRACE_KMSGS
        bool "KMSG Tracing"
        default n
@@ -103,6 +111,24 @@ config TRACE_KMSGS
                this off for a slight performance improvement on every KMSG (and every
                MCP proc_yield).
 
                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 DEVELOPMENT_ASSERTIONS
+       bool "dasserts"
+       default n
+       help
+               Turn on dassert() in code, dassert will compile to assert().
+
 config SPINLOCK_DEBUG
        bool "Spinlock debugging"
        default n
 config SPINLOCK_DEBUG
        bool "Spinlock debugging"
        default n
@@ -119,6 +145,37 @@ config SEQLOCK_DEBUG
                Provides asserts to detect seqlock errors.  This will allow a malicious
                userspace to trigger a panic in the kernel.
 
                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 SEM_SPINWAIT
+       bool "Semaphore spinwaiting"
+       default n
+       help
+               Turns on semaphore spinwaiting.  In lieu of intelligent Adaptive
+               Mutexes, busy semaphores will just spin for a while before fully
+               sleeping.
+
+config SEM_SPINWAIT_NR_LOOPS
+       int "Number of polls before sleeping"
+       depends on SEM_SPINWAIT
+       default 100
+       help
+               How many times to poll a busy semaphore before going to sleep.
+
+config SEM_TRACE_BLOCKERS
+       bool "Semaphore Blocker Tracing"
+       default n
+       help
+               Drops a TRACEME whenever a semaphore would block (barring slight
+               races).  To access the trace data, you'll need to use the opcontrols
+               and process the data with op2.
+
 config RESET_STACKS
        bool "Reset Stacks"
        default y
 config RESET_STACKS
        bool "Reset Stacks"
        default y
@@ -127,6 +184,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.
 
                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
 config KTHREAD_POISON
        bool "Kthread Poison Canary"
        default n
@@ -150,8 +219,57 @@ 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.
 
                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.
+
+config BLOCK_EXTRAS
+       bool "Block Extra Data"
+       default y
+       help
+               Extends blocks to have a list of other memory blocks.  Useful for
+               networking performance.  This is only an option while we debug the
+               implementation.  Say y.  If you have networking bugs, try turning this
+               off, and if that helps, tell someone.
+
 endmenu
 
 endmenu
 
+config VM
+       bool "Virtual Machine support"
+       default n
+       help
+               VM support -- not working! Based on KVM.
+
+menuconfig NIX
+       bool "NIX support"
+       default n
+       help
+               NIX support -- Sort of working. You can start kernels that don't enable
+               interrupts.
+
+if NIX
+
+config NIX_IMG_PADDR
+       hex "Physical address for the NIX image"
+       depends on NIX
+       default 0x40000000
+       help
+               Physical address that the NIX device will allocate during
+               initialization.
+
+config NIX_IMG_SIZE
+       hex "Size of the NIX image"
+       depends on NIX
+       default 0x40000000
+       help
+               Size in bytes of the NIX image.  Must be a power of two.
+
+endif # NIX
+
 menu "Misc/Old Options"
 
 config ARSC_SERVER
 menu "Misc/Old Options"
 
 config ARSC_SERVER
@@ -191,3 +309,5 @@ config BSD_ON_CORE0
                This was an old joke.  Say 'n', since we can't simply #include <bsd>.
 
 endmenu
                This was an old joke.  Say 'n', since we can't simply #include <bsd>.
 
 endmenu
+
+source "kern/src/ktest/Kconfig"