178 lines
5.1 KiB
Plaintext
178 lines
5.1 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"
|
|
depends on !USERSPACE
|
|
default y if PRINTK
|
|
help
|
|
If enabled, printk messages are redirected to the logging subsystem.
|
|
The messages are formatted in place and logged unconditionally.
|
|
|
|
if LOG_MODE_DEFERRED && !LOG_FRONTEND_ONLY
|
|
|
|
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 2048 if ASSERT || SPIN_VALIDATE
|
|
default 768
|
|
help
|
|
Set the internal stack size for log processing thread.
|
|
|
|
config LOG_PROCESSING_LATENCY_US
|
|
int "Maximum remote message latency (in microseconds)"
|
|
default 100000
|
|
depends on LOG_MULTIDOMAIN
|
|
help
|
|
Arbitrary time between log message creation in the remote domain and
|
|
processing in the local domain. Higher value increases message processing
|
|
latency but increases chances of maintaining correct ordering of the
|
|
messages. Option is used only if links are using dedicated buffers
|
|
for remote messages.
|
|
|
|
config LOG_PROCESS_THREAD_CUSTOM_PRIORITY
|
|
bool "Custom log thread priority"
|
|
help
|
|
Set a custom value for the log processing thread.
|
|
|
|
config LOG_PROCESS_THREAD_PRIORITY
|
|
int "Priority of the log processing thread"
|
|
default 0
|
|
depends on LOG_PROCESS_THREAD_CUSTOM_PRIORITY
|
|
help
|
|
The priority of the log processing thread.
|
|
When not set the prority is set to K_LOWEST_APPLICATION_THREAD_PRIO.
|
|
|
|
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_DEFERRED && !LOG_FRONTEND_ONLY
|
|
|
|
if LOG_MULTIDOMAIN
|
|
|
|
config LOG_DOMAIN_NAME_CACHE_ENTRY_SIZE
|
|
int "Cache slot size of domain name"
|
|
default 8
|
|
|
|
config LOG_DOMAIN_NAME_CACHE_ENTRY_COUNT
|
|
int "Number of entries in domain name cache"
|
|
default 2
|
|
|
|
config LOG_SOURCE_NAME_CACHE_ENTRY_SIZE
|
|
int "Cache slot size of source name"
|
|
default 16
|
|
|
|
config LOG_SOURCE_NAME_CACHE_ENTRY_COUNT
|
|
int "Number of entries in source name cache"
|
|
default 8
|
|
|
|
endif # LOG_MULTIDOMAIN
|
|
|
|
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_TIMESTAMP_USE_REALTIME
|
|
bool "Use real time clock for timestamp"
|
|
select LOG_TIMESTAMP_64BIT
|
|
depends on POSIX_CLOCK
|
|
help
|
|
When enabled, real time clock is used for timestamping.
|
|
|
|
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 # !LOG_MODE_MINIMAL
|
|
|
|
endmenu
|