2 # For a description of the syntax of this configuration file,
3 # see Linux's Documentation/kbuild/kconfig-language.txt.
5 mainmenu "Akaros/$SRCARCH Kernel Configuration"
7 # This is info, not a setable option. Must make ARCH=arch to change.
16 Say yes to build a 64-bit kernel, amd64 / x86_64, riscv64, etc.
18 source "kern/arch/$SRCARCH/Kconfig"
20 source "kern/src/net/Kconfig"
22 source "kern/drivers/Kconfig"
30 KFS is an initramfs bundled into the kernel, and contains your root
35 string "KFS/Initramfs paths"
38 Space separated list of paths to directories to bundle into KFS. This
39 will be your root filesystem.
43 string "KFS CPIO helper"
46 This binary (relative to the root directory) will be run before
47 bundling the KFS Paths into the CPIO.
50 bool "Ext2 filesystem"
53 Build in support for ext2. Extremely experimental, and only works with
54 a block device image, which will be mounted at /mnt. If you select
55 this, you must specify a block device.
59 string "Ext2 image file"
60 default mnt/ext2fs.img
62 This file needs to be an ext2 image (file that looks like a block
63 device). You should be able to mount this file in your host OS. It
64 will be bundled into the kernel and mounted at /mnt.
68 menu "Memory Management"
74 When turned on, mmap() calls do not immediately populate their pages.
75 This does not turn on any sort of real paging. Saying 'n' will act
76 like all mmap()s have MAP_POPULATE.
82 Turns on internal support for page coloring. When turned off, the page
83 allocator acts like there is only one color. Hasn't been used in a few
87 depends on PAGE_COLORING
88 bool "Boxboro-specific page coloring"
95 menu "Kernel Debugging"
97 menu "Per-cpu Tracers"
103 Turns on KMSG tracing, using the per-cpu ring buffer (holds about 256
104 events). You can access this from the monitor via "trace pcpui". Turn
105 this off for a slight performance improvement on every KMSG (and every
110 depends on SPINLOCK_DEBUG
113 Turns on lock tracing, using the per-cpu ring buffer. This records the
114 a timestamp and lock address, in an over-write tracing style (meaning
115 it'll clobber older events). If you have locking issues, this may give
116 you clues as to which locks were grabbed recently.
120 config SPINLOCK_DEBUG
121 bool "Spinlock debugging"
124 Turns on debugging, which tracks the last time a lock was acquired and
125 detects improper lock acquisition based on IRQ levels (e.g. using
126 spin_lock() in IRQ context). This will slow down all lock
130 bool "Seqlock debugging"
133 Provides asserts to detect seqlock errors. This will allow a malicious
134 userspace to trigger a panic in the kernel.
136 config SEMAPHORE_DEBUG
137 bool "Semaphore debugging"
140 Turns on debugging, which tracks the last time and location that a
141 semaphore was downed, and provides a linked list of all semaphores that
142 have waiters. This will slow down all semaphore ups and downs.
148 When idling, the kernel will reset the stack of its kernel thread to
149 the top of the stack, abandoning its context. This is useful so we do
150 not run off the end of our stacks, but makes backtracing difficult.
152 config KTHREAD_POISON
153 bool "Kthread Poison Canary"
156 Kthreads will use a bit of storage at the bottom of the stack to track
157 the state of the kthread. This is useful to catch various bugs with
158 kthreading, such as launching the same kthread twice concurrently.
161 bool "Disables symmetric multithreading"
164 Disables hyperthreading by telling the kernel to never give out even
165 numbered cores to MCPs. This does not check to see if the threads are
166 in fact siblings, or if the target machine is hyperthreaded.
168 config PRINTK_NO_BACKSPACE
169 bool "Printk with no backspace"
172 One of the serial devices I was using a while back had issues printing
173 backspaces. This was an old hack to deal with that.
177 menu "Misc/Old Options"
180 bool "Asynchronous remote syscalls"
183 Code to run a syscall-server on a core. A process can submit syscalls
184 and get the results asynchronously. Hasn't been used in years. Say
185 'n' unless you want to play around.
187 # SPARC auto-selects this
192 Old school I/O was through a remote machine. Not sure if anyone uses
199 Like the appserver, serial I/O was an old attempt to process I/O on a
200 remote machine across the serial port.
206 Have the kernel boot only a single core. Can be useful for debugging,
207 but hasn't been used in years.
213 This was an old joke. Say 'n', since we can't simply #include <bsd>.