summaryrefslogtreecommitdiff
path: root/kern/Kconfig
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-09-21 01:23:37 +0200
committerRichard Braun <rbraun@sceen.net>2017-09-21 01:26:09 +0200
commit1ff3666dc29c0eacf911c57d3e6b6a62bdc9cb78 (patch)
treea1c7d98eb2a370975bd82c6d3dc16349636ddddf /kern/Kconfig
parentd115a8cee02be828d46651a5fc91fdbfe23985f2 (diff)
New build system
The new build system, called xbuild, is a minimalistic kbuild-like make-based build system, also using kconfig for scalable configurations.
Diffstat (limited to 'kern/Kconfig')
-rw-r--r--kern/Kconfig83
1 files changed, 83 insertions, 0 deletions
diff --git a/kern/Kconfig b/kern/Kconfig
new file mode 100644
index 0000000..df0cbac
--- /dev/null
+++ b/kern/Kconfig
@@ -0,0 +1,83 @@
+menu "General setup"
+
+config MULTIPROCESSOR
+ bool "Multiprocessor support"
+ default y
+ ---help---
+ Enable support for machines with multiple processors.
+
+config MAX_CPUS
+ int "Maximum number of supported CPUs" if MULTIPROCESSOR
+ range 2 512 if MULTIPROCESSOR
+ default "1" if !MULTIPROCESSOR
+ default "128" if MULTIPROCESSOR
+ ---help---
+ Maximum number of supported processors.
+
+config CLOCK_FREQ
+ int "Low resolution clock frequency"
+ range 100 1000
+ default 200
+ ---help---
+ The low resolution clock frequency determines how often low
+ resolution clocks interrupt processors. These clocks drive
+ the timer system. Low values increase throughput and latencies,
+ whereas high values reduce throughput and latencies.
+
+ The value must be usable as an integer divisor for 1000, with
+ no remainder.
+
+ Recommended values are 100 for throughput, 1000 for low
+ latencies, and 200 or 250 for a good balance between throughput
+ and latencies.
+
+choice
+ prompt "Mutex implementation"
+ default MUTEX_PLAIN
+ ---help---
+ A mutex is a sleeping synchronization object used throughout the
+ kernel and available to kernel applications. As a result, this
+ option affects all mutex users.
+
+ If in doubt, choose the plain implementation.
+
+config MUTEX_ADAPTIVE
+ bool "Adaptive spinning mutex"
+ ---help---
+ Adaptive spinning mutex, spinning instead of sleeping if the owner
+ is running, in the hope the critical section is short and the mutex
+ will be unlocked soon, to avoid expensive sleep/wakeup operations.
+ This implementation should improve overall performance at the cost
+ of increased latencies.
+
+config MUTEX_PI
+ bool "Mutex with priority inheritance"
+ ---help---
+ Real-time mutex with priority inheritance. This implementation
+ should improve latencies at the cost of overall performance.
+
+config MUTEX_PLAIN
+ bool "Plain mutex"
+ ---help---
+ Default implementation, immediately sleeping on contention.
+
+endchoice
+
+config SHELL
+ bool "Embedded shell"
+ default n
+ ---help---
+ Enable the embedded shell.
+
+ The embedded shell is mostly used for diagnostics.
+
+config THREAD_STACK_GUARD
+ bool "Thread stack guard pages"
+ ---help---
+ Enable the use of guard pages around kernel thread stacks to catch
+ overflows. Note that this feature wastes precious kernel virtual
+ memory and has some overhead during thread creation and destruction.
+
+ If unsure, disable.
+
+endmenu