1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
menu "General setup"
config SMP
bool "Multiprocessor support"
default y
---help---
Enable support for machines with multiple processors.
config MAX_CPUS
int "Maximum number of supported CPUs" if SMP
range 2 512 if SMP
default "1" if !SMP
default "128" if SMP
---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 RCU_WINDOW_CHECK_INTERVAL
int "Interval between RCU window checks"
range 1 100
default 10
---help---
Time (in milliseconds) between two RCU window checks.
The RCU system keeps memory used by read-side critical sections
until it is safe to release it, which can only be determined when
checking windows. As a result, checking windows more frequently
may help lower latencies on synchronous RCU waits, and in turn,
the amount of memory pending release, at the cost of increased
CPU overhead.
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.
config THREAD_MAX_TSD_KEYS
int "Maximum number of thread-specific data (TSD) keys"
default 0
---help---
This option is intended for application code embedded in the kernel
which may use TSD. The kernel itself never uses them. A value of 0
completely disables TSD support.
If unsure, set to 0.
config PERFMON
def_bool n
config PERFMON_MAX_PMCS
int "Number of performance monitoring counters"
default 8
depends on PERFMON
---help---
Number of performance monitoring counters.
This value affects the minimum duration of some critical sections
that run with interrupts disabled.
endmenu
menu "Debugging"
config KMEM_DEBUG
bool "Kernel allocator debugging"
default n
---help---
Enable the debugging of the kernel allocator.
config KMEM_NO_CPU_LAYER
bool "Disable the CPU layer of the kernel allocator"
depends on SMP
default n
---help---
The kernel allocator is made up of two layers named
the CPU and slab layers. the CPU layer is responsible
for caching objects locally on a processor to reduce
contention and cache misses. When reporting kernel
memory usage, the CPU layer is ignored, and objects
stored in it are accounted as allocated, which can
cause confusion when checking the state of the system.
This option disables the CPU layer entirely, so that
the report usage stats match the actual allocator
state.
If unsure, disable (leave the CPU layer enabled).
config INIT_DEBUG
bool "Initialization debugging"
default n
---help---
Enable the debugging of initialization operations.
config MUTEX_DEBUG
bool "Mutex debugging"
default n
---help---
Enable mutex debugging and instrumentation.
config SPINLOCK_DEBUG
bool "Spinlock debugging"
default n
---help---
Enable spinlock ownership tracking.
config SREF_DEBUG
bool "Scalable reference counter debugging"
select ASSERT
default n
---help---
Enable scalable reference counter debugging
endmenu
|