|
@@ -807,15 +807,53 @@ config LOG_BUF_SHIFT
|
|
|
range 12 21
|
|
|
default 17
|
|
|
help
|
|
|
- Select kernel log buffer size as a power of 2.
|
|
|
+ Select the minimal kernel log buffer size as a power of 2.
|
|
|
+ The final size is affected by LOG_CPU_MAX_BUF_SHIFT config
|
|
|
+ parameter, see below. Any higher size also might be forced
|
|
|
+ by "log_buf_len" boot parameter.
|
|
|
+
|
|
|
Examples:
|
|
|
- 17 => 128 KB
|
|
|
+ 17 => 128 KB
|
|
|
16 => 64 KB
|
|
|
- 15 => 32 KB
|
|
|
- 14 => 16 KB
|
|
|
+ 15 => 32 KB
|
|
|
+ 14 => 16 KB
|
|
|
13 => 8 KB
|
|
|
12 => 4 KB
|
|
|
|
|
|
+config LOG_CPU_MAX_BUF_SHIFT
|
|
|
+ int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
|
|
|
+ range 0 21
|
|
|
+ default 12 if !BASE_SMALL
|
|
|
+ default 0 if BASE_SMALL
|
|
|
+ help
|
|
|
+ This option allows to increase the default ring buffer size
|
|
|
+ according to the number of CPUs. The value defines the contribution
|
|
|
+ of each CPU as a power of 2. The used space is typically only few
|
|
|
+ lines however it might be much more when problems are reported,
|
|
|
+ e.g. backtraces.
|
|
|
+
|
|
|
+ The increased size means that a new buffer has to be allocated and
|
|
|
+ the original static one is unused. It makes sense only on systems
|
|
|
+ with more CPUs. Therefore this value is used only when the sum of
|
|
|
+ contributions is greater than the half of the default kernel ring
|
|
|
+ buffer as defined by LOG_BUF_SHIFT. The default values are set
|
|
|
+ so that more than 64 CPUs are needed to trigger the allocation.
|
|
|
+
|
|
|
+ Also this option is ignored when "log_buf_len" kernel parameter is
|
|
|
+ used as it forces an exact (power of two) size of the ring buffer.
|
|
|
+
|
|
|
+ The number of possible CPUs is used for this computation ignoring
|
|
|
+ hotplugging making the compuation optimal for the the worst case
|
|
|
+ scenerio while allowing a simple algorithm to be used from bootup.
|
|
|
+
|
|
|
+ Examples shift values and their meaning:
|
|
|
+ 17 => 128 KB for each CPU
|
|
|
+ 16 => 64 KB for each CPU
|
|
|
+ 15 => 32 KB for each CPU
|
|
|
+ 14 => 16 KB for each CPU
|
|
|
+ 13 => 8 KB for each CPU
|
|
|
+ 12 => 4 KB for each CPU
|
|
|
+
|
|
|
#
|
|
|
# Architectures with an unreliable sched_clock() should select this:
|
|
|
#
|