Kconfig 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. menu "General setup"
  2. config SMP
  3. bool "Multiprocessor support"
  4. default y
  5. ---help---
  6. Enable support for machines with multiple processors.
  7. config MAX_CPUS
  8. int "Maximum number of supported CPUs" if SMP
  9. range 2 512 if SMP
  10. default "1" if !SMP
  11. default "128" if SMP
  12. ---help---
  13. Maximum number of supported processors.
  14. config CLOCK_FREQ
  15. int "Low resolution clock frequency"
  16. range 100 1000
  17. default 200
  18. ---help---
  19. The low resolution clock frequency determines how often low
  20. resolution clocks interrupt processors. These clocks drive
  21. the timer system. Low values increase throughput and latencies,
  22. whereas high values reduce throughput and latencies.
  23. The value must be usable as an integer divisor for 1000, with
  24. no remainder.
  25. Recommended values are 100 for throughput, 1000 for low
  26. latencies, and 200 or 250 for a good balance between throughput
  27. and latencies.
  28. choice
  29. prompt "Mutex implementation"
  30. default MUTEX_PLAIN
  31. ---help---
  32. A mutex is a sleeping synchronization object used throughout the
  33. kernel and available to kernel applications. As a result, this
  34. option affects all mutex users.
  35. If in doubt, choose the plain implementation.
  36. config MUTEX_ADAPTIVE
  37. bool "Adaptive spinning mutex"
  38. ---help---
  39. Adaptive spinning mutex, spinning instead of sleeping if the owner
  40. is running, in the hope the critical section is short and the mutex
  41. will be unlocked soon, to avoid expensive sleep/wakeup operations.
  42. This implementation should improve overall performance at the cost
  43. of increased latencies.
  44. config MUTEX_PI
  45. bool "Mutex with priority inheritance"
  46. ---help---
  47. Real-time mutex with priority inheritance. This implementation
  48. should improve latencies at the cost of overall performance.
  49. config MUTEX_PLAIN
  50. bool "Plain mutex"
  51. ---help---
  52. Default implementation, immediately sleeping on contention.
  53. endchoice
  54. config RCU_WINDOW_CHECK_INTERVAL
  55. int "Interval between RCU window checks"
  56. range 1 100
  57. default 10
  58. ---help---
  59. Time (in milliseconds) between two RCU window checks.
  60. The RCU system keeps memory used by read-side critical sections
  61. until it is safe to release it, which can only be determined when
  62. checking windows. As a result, checking windows more frequently
  63. may help lower latencies on synchronous RCU waits, and in turn,
  64. the amount of memory pending release, at the cost of increased
  65. CPU overhead.
  66. config SHELL
  67. bool "Embedded shell"
  68. default n
  69. ---help---
  70. Enable the embedded shell.
  71. The embedded shell is mostly used for diagnostics.
  72. config THREAD_STACK_GUARD
  73. bool "Thread stack guard pages"
  74. ---help---
  75. Enable the use of guard pages around kernel thread stacks to catch
  76. overflows. Note that this feature wastes precious kernel virtual
  77. memory and has some overhead during thread creation and destruction.
  78. If unsure, disable.
  79. config THREAD_MAX_TSD_KEYS
  80. int "Maximum number of thread-specific data (TSD) keys"
  81. default 0
  82. ---help---
  83. This option is intended for application code embedded in the kernel
  84. which may use TSD. The kernel itself never uses them. A value of 0
  85. completely disables TSD support.
  86. If unsure, set to 0.
  87. config PERFMON
  88. def_bool n
  89. config PERFMON_MAX_PMCS
  90. int "Number of performance monitoring counters"
  91. default 8
  92. depends on PERFMON
  93. ---help---
  94. Number of performance monitoring counters.
  95. This value affects the minimum duration of some critical sections
  96. that run with interrupts disabled.
  97. endmenu
  98. menu "Debugging"
  99. config KMEM_DEBUG
  100. bool "Kernel allocator debugging"
  101. default n
  102. ---help---
  103. Enable the debugging of the kernel allocator.
  104. config KMEM_NO_CPU_LAYER
  105. bool "Disable the CPU layer of the kernel allocator"
  106. depends on SMP
  107. default n
  108. ---help---
  109. The kernel allocator is made up of two layers named
  110. the CPU and slab layers. the CPU layer is responsible
  111. for caching objects locally on a processor to reduce
  112. contention and cache misses. When reporting kernel
  113. memory usage, the CPU layer is ignored, and objects
  114. stored in it are accounted as allocated, which can
  115. cause confusion when checking the state of the system.
  116. This option disables the CPU layer entirely, so that
  117. the report usage stats match the actual allocator
  118. state.
  119. If unsure, disable (leave the CPU layer enabled).
  120. config INIT_DEBUG
  121. bool "Initialization debugging"
  122. default n
  123. ---help---
  124. Enable the debugging of initialization operations.
  125. config MUTEX_DEBUG
  126. bool "Mutex debugging"
  127. default n
  128. ---help---
  129. Enable mutex debugging and instrumentation.
  130. config SPINLOCK_DEBUG
  131. bool "Spinlock debugging"
  132. default n
  133. ---help---
  134. Enable spinlock ownership tracking.
  135. config SREF_DEBUG
  136. bool "Scalable reference counter debugging"
  137. select ASSERT
  138. default n
  139. ---help---
  140. Enable scalable reference counter debugging
  141. endmenu