Print backtraces when we do a warn()
[akaros.git] / Kconfig
diff --git a/Kconfig b/Kconfig
index 346c03a..2c28f45 100644 (file)
--- a/Kconfig
+++ b/Kconfig
@@ -11,9 +11,9 @@ config SRCARCH
 
 config 64BIT
        bool "64-bit kernel"
-       default n
+       default y
        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"
@@ -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.
 
-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
 
-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
-               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
-               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"
 
@@ -123,6 +111,12 @@ config TRACE_LOCKS
 
 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
@@ -162,22 +156,6 @@ config SEM_SPINWAIT_NR_LOOPS
        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
-       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
@@ -190,14 +168,6 @@ config LARGE_KSTACKS
                higher performance, and mention this setting if you have any weird
                crashes or panics.
 
-config KTHREAD_POISON
-       bool "Kthread Poison Canary"
-       default n
-       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.
-
 config DISABLE_SMT
        bool "Disables symmetric multithreading"
        default n
@@ -230,14 +200,15 @@ config BLOCK_EXTRAS
                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
-               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"
 
@@ -279,4 +250,6 @@ config BSD_ON_CORE0
 
 endmenu
 
+source "kern/lib/Kconfig"
+
 source "kern/src/ktest/Kconfig"