175 lines
5.0 KiB
Plaintext
175 lines
5.0 KiB
Plaintext
# Copyright (c) 2021 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "Processing"
|
|
|
|
if !LOG_MODE_MINIMAL
|
|
|
|
config LOG_PRINTK
|
|
bool "Process printk messages"
|
|
help
|
|
LOG_PRINTK messages are formatted in place and logged unconditionally.
|
|
|
|
config LOG_PRINTK_MAX_STRING_LENGTH
|
|
int "Maximum string length supported by LOG_PRINTK"
|
|
depends on LOG_PRINTK
|
|
depends on (!LOG_MODE_IMMEDIATE || USERSPACE)
|
|
default 128
|
|
help
|
|
Array is allocated on the stack.
|
|
|
|
if !LOG_MODE_IMMEDIATE
|
|
|
|
config LOG_MODE_OVERFLOW
|
|
bool "Drop oldest message when full"
|
|
default y
|
|
help
|
|
If enabled, then if there is no space to log a new message, the
|
|
oldest one is dropped. If disabled, current message is dropped.
|
|
|
|
config LOG_BLOCK_IN_THREAD
|
|
bool "Block in thread context on full"
|
|
depends on MULTITHREADING
|
|
help
|
|
When enabled logger will block (if in the thread context) when
|
|
internal logger buffer is full and new message cannot be allocated.
|
|
|
|
config LOG_BLOCK_IN_THREAD_TIMEOUT_MS
|
|
int "Maximum time (in milliseconds) thread can be blocked"
|
|
default 1000
|
|
range -1 10000
|
|
depends on LOG_BLOCK_IN_THREAD
|
|
help
|
|
If new buffer for a log message cannot be allocated in that time, log
|
|
message is dropped. Forever blocking (-1) is possible however may lead
|
|
to the logger deadlock if logging is enabled in threads used for
|
|
logging (e.g. logger or shell thread).
|
|
|
|
config LOG_PROCESS_TRIGGER_THRESHOLD
|
|
int "Number of buffered log messages before flushing"
|
|
default 10
|
|
depends on MULTITHREADING
|
|
help
|
|
When number of buffered messages reaches the threshold thread is waken
|
|
up. Log processing thread ID is provided during log initialization.
|
|
Set 0 to disable the feature. If LOG_PROCESS_THREAD is enabled then
|
|
this threshold is used by the internal thread.
|
|
|
|
config LOG_PROCESS_THREAD
|
|
bool "Use internal thread for log processing"
|
|
depends on MULTITHREADING
|
|
default y
|
|
help
|
|
When enabled thread is created by the logger subsystem. Thread is
|
|
waken up periodically (see LOG_PROCESS_THREAD_SLEEP_MS) and whenever
|
|
number of buffered messages exceeds the threshold (see
|
|
LOG_PROCESS_TRIGGER_THR).
|
|
|
|
if LOG_PROCESS_THREAD
|
|
|
|
config LOG_PROCESS_THREAD_STARTUP_DELAY_MS
|
|
int "Set log processing thread startup delay"
|
|
default 0
|
|
help
|
|
Log processing thread starts after requested delay given in
|
|
milliseconds. When started, thread process any buffered messages.
|
|
|
|
config LOG_PROCESS_THREAD_SLEEP_MS
|
|
int "Set internal log processing thread sleep period"
|
|
default 1000
|
|
help
|
|
Log processing thread sleeps for requested period given in
|
|
milliseconds. When waken up, thread process any buffered messages.
|
|
|
|
config LOG_PROCESS_THREAD_STACK_SIZE
|
|
int "Stack size for the internal log processing thread"
|
|
default 4096 if (X86 && X86_64)
|
|
default 4096 if ARM64
|
|
default 4096 if (ARC && 64BIT)
|
|
default 4096 if SPARC
|
|
default 2048 if COVERAGE_GCOV
|
|
default 2048 if (RISCV && 64BIT)
|
|
default 2048 if LOG_BACKEND_FS
|
|
default 1152 if LOG_BACKEND_NET
|
|
default 4096 if NO_OPTIMIZATIONS
|
|
default 1024 if XTENSA
|
|
default 768
|
|
help
|
|
Set the internal stack size for log processing thread.
|
|
|
|
endif # LOG_PROCESS_THREAD
|
|
|
|
config LOG_BUFFER_SIZE
|
|
int "Number of bytes dedicated for the logger internal buffer"
|
|
default 1024
|
|
range 128 65536
|
|
help
|
|
Number of bytes dedicated for the logger internal buffer.
|
|
|
|
endif # !LOG_MODE_IMMEDIATE
|
|
|
|
if LOG1_DEFERRED
|
|
|
|
config LOG_DETECT_MISSED_STRDUP
|
|
bool "Detect missed handling of transient strings"
|
|
default y
|
|
help
|
|
If enabled, logger will assert and log error message is it detects
|
|
that string format specifier (%s) and string address which is not from
|
|
read only memory section and not from pool used for string duplicates.
|
|
String argument must be duplicated in that case using log_strdup().
|
|
Detection is performed during log processing thus it does not impact
|
|
logging timing.
|
|
|
|
config LOG_STRDUP_MAX_STRING
|
|
int "Longest string that can be duplicated using log_strdup()"
|
|
range 1 8192
|
|
default 66 if BT
|
|
default 46 if NETWORKING
|
|
default 32
|
|
help
|
|
Longer strings are truncated.
|
|
|
|
config LOG_STRDUP_BUF_COUNT
|
|
int "Number of buffers in the pool used by log_strdup()"
|
|
default 8 if BT
|
|
default 4
|
|
help
|
|
Number of calls to log_strdup() which can be pending before flushed
|
|
to output. If "<log_strdup alloc failed>" message is seen in the log
|
|
output, it means this value is too small and should be increased.
|
|
Each entry takes CONFIG_LOG_STRDUP_MAX_STRING bytes of memory plus
|
|
some additional fixed overhead.
|
|
|
|
config LOG_STRDUP_POOL_PROFILING
|
|
bool "Profiling of pool used for log_strdup()"
|
|
help
|
|
When enabled, maximal utilization of the pool is tracked. It can
|
|
be read out using shell command.
|
|
|
|
endif # LOG1_DEFERRED
|
|
|
|
if LOG2
|
|
|
|
config LOG_TRACE_SHORT_TIMESTAMP
|
|
bool "Use 24 bit timestamp for tracing"
|
|
default y
|
|
help
|
|
When enabled, shorter timestamp is used and trace message is
|
|
compressed.
|
|
|
|
config LOG_TIMESTAMP_64BIT
|
|
bool "Use 64 bit timestamp"
|
|
|
|
config LOG_SPEED
|
|
bool "Prefer performance over size"
|
|
depends on LOG_MODE_DEFERRED
|
|
depends on !LOG_FRONTEND
|
|
help
|
|
If enabled, logging may take more code size to get faster logging.
|
|
endif # LOG2
|
|
|
|
endif # !LOG_MODE_MINIMAL
|
|
|
|
endmenu
|