diff options
author | Richard Braun <rbraun@sceen.net> | 2017-09-21 01:23:37 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2017-09-21 01:26:09 +0200 |
commit | 1ff3666dc29c0eacf911c57d3e6b6a62bdc9cb78 (patch) | |
tree | a1c7d98eb2a370975bd82c6d3dc16349636ddddf /kern/Kconfig | |
parent | d115a8cee02be828d46651a5fc91fdbfe23985f2 (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/Kconfig | 83 |
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 |