alarm: Handle the tchain in RKM context
[akaros.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index ecb9ff1..8fdc079 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -11,9 +11,9 @@ config SRCARCH
 
 config 64BIT
        bool "64-bit kernel"
 
 config 64BIT
        bool "64-bit kernel"
-       default n
+       default y
        help
        help
-               Say yes to build a 64-bit kernel, amd64 / x86_64, riscv64, etc.
+               Say yes to build a 64-bit kernel.  Must be 'y' for x86.
 
 menuconfig RUN_INIT_SCRIPT
        bool "Run init script after boot"
 
 menuconfig RUN_INIT_SCRIPT
        bool "Run init script after boot"
@@ -60,43 +60,31 @@ config KFS_CPIO_BIN
                This binary (relative to the root directory) will be run before
                bundling the KFS Paths into the CPIO.
 
                This binary (relative to the root directory) will be run before
                bundling the KFS Paths into the CPIO.
 
-config EXT2FS
-       bool "Ext2 filesystem"
-       default n
-       help
-               Build in support for ext2.  Extremely experimental, and only works with
-               a block device image, which will be mounted at /mnt.  If you select
-               this, you must specify a block device.
-
-config EXT2_BDEV
-       depends on EXT2FS
-       string "Ext2 image file"
-       default mnt/ext2fs.img
-       help
-               This file needs to be an ext2 image (file that looks like a block
-               device).  You should be able to mount this file in your host OS.  It
-               will be bundled into the kernel and mounted at /mnt.
-
 endmenu
 
 endmenu
 
-menu "Memory Management"
+choice COREALLOC_POLICY
+       prompt "Core Allocation Policy"
+       help
+               Select a policy for allocating cores to a process upon request.  All
+               strategies first allocate cores from the set of provisioned cores for a
+               process, but differ in how they select cores beyond this.
 
 
-config PAGE_COLORING
-       bool "Page coloring"
-       default n
+config COREALLOC_FCFS
+       bool "Simple FCFS"
        help
        help
-               Turns on internal support for page coloring.  When turned off, the page
-               allocator acts like there is only one color.  Hasn't been used in a few
-               years.
+               Allocate cores to processes on a first-come-first-served basis. All
+               cores are treated equally, and no topology information is used to try
+               and optimize which cores are given to which processes upon request.
 
 
-config BOXBORO
-       depends on PAGE_COLORING
-       bool "Boxboro-specific page coloring"
-       default n
+config COREALLOC_PACKED
+       bool "Packed Topology"
        help
        help
-               Say 'n'.
+               Allocate cores to a process based on a topology-aware algorithm that
+               tries to pack allocated cores as close together as possible.  It first
+               tries to pair new cores with their hyper-threaded pair, then keep them
+               on the same socket, then the same numa domain.
 
 
-endmenu
+endchoice
 
 menu "Kernel Debugging"
 
 
 menu "Kernel Debugging"
 
@@ -123,6 +111,12 @@ config TRACE_LOCKS
 
 endmenu
 
 
 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
@@ -147,33 +141,20 @@ config SEMAPHORE_DEBUG
                semaphore was downed, and provides a linked list of all semaphores that
                have waiters.  This will slow down all semaphore ups and downs.
 
                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
-       help
-               When idling, the kernel will reset the stack of its kernel thread to
-               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
+config SEM_SPINWAIT
+       bool "Semaphore spinwaiting"
+       default n
        help
        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.
+               Turns on semaphore spinwaiting.  In lieu of intelligent Adaptive
+               Mutexes, busy semaphores will just spin for a while before fully
+               sleeping.
 
 
-               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 SEM_SPINWAIT_NR_LOOPS
+       int "Number of polls before sleeping"
+       depends on SEM_SPINWAIT
+       default 100
        help
        help
-               Kthreads will use a bit of storage at the bottom of the stack to track
-               the state of the kthread.  This is useful to catch various bugs with
-               kthreading, such as launching the same kthread twice concurrently.
+               How many times to poll a busy semaphore before going to sleep.
 
 config DISABLE_SMT
        bool "Disables symmetric multithreading"
 
 config DISABLE_SMT
        bool "Disables symmetric multithreading"
@@ -207,14 +188,15 @@ config BLOCK_EXTRAS
                implementation.  Say y.  If you have networking bugs, try turning this
                off, and if that helps, tell someone.
 
                implementation.  Say y.  If you have networking bugs, try turning this
                off, and if that helps, tell someone.
 
-endmenu
-
-config VM
-       bool "Virtual Machine support"
+config BETTER_BACKTRACE
+       bool "Better backtraces, less optimizations"
        default n
        help
        default n
        help
-               VM support -- not working! Based on KVM.
+               The kernel uses the frame pointer and call stacks for backtraces.
+               Tail-call optimizations remove some of this information.  Say 'Y' here
+               to have better backtraces, at the expense of performance.
 
 
+endmenu
 
 menu "Misc/Old Options"
 
 
 menu "Misc/Old Options"
 
@@ -256,4 +238,6 @@ config BSD_ON_CORE0
 
 endmenu
 
 
 endmenu
 
+source "kern/lib/Kconfig"
+
 source "kern/src/ktest/Kconfig"
 source "kern/src/ktest/Kconfig"