help
Say yes to build a 64-bit kernel, amd64 / x86_64, riscv64, etc.
+menuconfig RUN_INIT_SCRIPT
+ bool "Run init script after boot"
+ default n
+ help
+ 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/src/net/Kconfig"
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
menu "Kernel Debugging"
+menu "Per-cpu Tracers"
+
config TRACE_KMSGS
bool "KMSG Tracing"
default n
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
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
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
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
+config VM
+ bool "Virtual Machine support"
+ default n
+ help
+ VM support -- not working! Based on KVM.
+
+
menu "Misc/Old Options"
config ARSC_SERVER
This was an old joke. Say 'n', since we can't simply #include <bsd>.
endmenu
+
+source "kern/src/ktest/Kconfig"