blob: 4e9abb0515ac289e03af60f0a86128b03c8e2959 [file] [log] [blame]
# Debug configuration options
# Copyright (c) 2015 Wind River Systems, Inc.
# SPDX-License-Identifier: Apache-2.0
DT_CHOSEN_Z_CONSOLE := zephyr,console
config TRACING
bool "Tracing Support"
imply THREAD_NAME
imply THREAD_STACK_INFO
imply THREAD_MONITOR
select INSTRUMENT_THREAD_SWITCHING
help
Enable system tracing. This requires a backend such as SEGGER
Systemview to be enabled as well.
if TRACING
config TRACING_CORE
bool
help
Automatically selected by formats that require the core
tracing infrastructure.
choice
prompt "Tracing Format"
default TRACING_NONE
config TRACING_NONE
bool "No tracing format selected"
help
None of the available tracing formats is selected.
config PERCEPIO_TRACERECORDER
bool "Percepio Tracealyzer support"
select THREAD_NAME
select INIT_STACKS
select THREAD_MONITOR
depends on ZEPHYR_PERCEPIO_MODULE
config SEGGER_SYSTEMVIEW
bool "Segger SystemView support"
select CONSOLE
select RTT_CONSOLE
select USE_SEGGER_RTT
select THREAD_MONITOR
select SEGGER_RTT_CUSTOM_LOCKING
config TRACING_CTF
bool "Tracing via Common Trace Format support"
select TRACING_CORE
help
Enable tracing to a Common Trace Format stream.
config TRACING_TEST
bool "Tracing for test usage"
select TRACING_CORE
help
Enable tracing for testing kinds of format purpose. It must
implement the tracing hooks defined in tracing_test.h
config TRACING_USER
bool "Tracing using user-defined functions"
help
Use user-defined functions for tracing task switching and irqs
endchoice
config TRACING_CTF_TIMESTAMP
bool "CTF internal timestamp"
default y
depends on TRACING_CTF
help
Timestamp prefix will be added to the beginning of CTF
event internally.
choice
prompt "Tracing Method"
default TRACING_ASYNC
config TRACING_SYNC
bool "Synchronous Tracing"
select RING_BUFFER
help
Enable synchronous tracing. This requires the backend to be
very low-latency.
config TRACING_ASYNC
bool "Asynchronous Tracing"
select RING_BUFFER
help
Enable asynchronous tracing. This will buffer all the tracing
packets to the ring buffer first, tracing thread will try to
output as much data as possible from the buffer when tracing
thread get scheduled.
endchoice
config TRACING_THREAD_STACK_SIZE
int "Stack size of tracing thread"
default 1024
depends on TRACING_ASYNC
help
Stack size of tracing thread.
config TRACING_THREAD_WAIT_THRESHOLD
int "Tracing thread waiting threshold"
default 100
depends on TRACING_ASYNC
help
Tracing thread waiting period given in milliseconds after
every first packet put to tracing buffer.
config TRACING_BUFFER_SIZE
int "Size of tracing buffer"
default 2048 if TRACING_ASYNC
default TRACING_PACKET_MAX_SIZE if TRACING_SYNC
range 32 65536
help
Size of tracing buffer. If TRACING_ASYNC is enabled, tracing buffer
is used as a ring buffer to buffer data packet and string packet. If
TRACING_SYNC is enabled, the buffer is used to hold the formatted data.
config TRACING_PACKET_MAX_SIZE
int "Max size of one tracing packet"
default 32
help
Max size of one tracing packet.
choice
prompt "Tracing Backend"
default TRACING_BACKEND_UART
config TRACING_BACKEND_UART
bool "UART backend"
depends on UART_CONSOLE
help
Use UART to output tracing data.
config TRACING_BACKEND_USB
bool "USB backend"
depends on USB_DEVICE_STACK
depends on TRACING_ASYNC
help
Use USB to output tracing data.
config TRACING_BACKEND_POSIX
bool "Posix architecture (native) backend"
depends on TRACING_SYNC
depends on ARCH_POSIX
help
Use posix architecture to output tracing data to file system.
config TRACING_BACKEND_RAM
bool "RAM backend"
help
Use a ram buffer to output tracing data which can
be dumped to a file at runtime with a debugger.
See gdb dump binary memory documentation for example.
config TRACING_BACKEND_ADSP_MEMORY_WINDOW
bool "Memory window in RAM"
depends on SOC_FAMILY_INTEL_ADSP
depends on TRACING_SYNC
help
Use ADSP memory debug memory window to output tracing data
endchoice
config RAM_TRACING_BUFFER_SIZE
int "Ram Tracing buffer size"
default 4096
depends on TRACING_BACKEND_RAM
help
Size of the RAM trace buffer. Trace will be discarded if the
length is exceeded.
config TRACING_USB_MPS
int "USB backend max packet size"
default 64
depends on TRACING_BACKEND_USB
help
USB tracing backend max packet size(endpoint MPS).
config TRACING_HANDLE_HOST_CMD
bool "Host command handle"
select UART_INTERRUPT_DRIVEN if TRACING_BACKEND_UART
help
When enabled tracing will handle cmd from host to dynamically
enable and disable tracing to have host capture tracing stream
data conveniently.
config TRACING_CMD_BUFFER_SIZE
int "Size of tracing command buffer"
default 32
range 32 128
help
Size of tracing command buffer.
config TRACING_OBJECT_TRACKING
bool "Object tracking"
help
Keep lists to track kernel objects.
menu "Tracing Configuration"
config TRACING_SYSCALL
bool "Tracing Syscalls"
default y
help
Enable tracing Syscalls.
config TRACING_THREAD
bool "Tracing Threads"
default y
help
Enable tracing Threads.
config TRACING_WORK
bool "Tracing Work"
default y
help
Enable tracing Work and Work queue events
config TRACING_ISR
bool "Tracing ISRs"
default y
help
Enable tracing ISRs. This requires the backend to be
very low-latency.
config TRACING_SEMAPHORE
bool "Tracing Semaphores"
default y
help
Enable tracing Semaphores.
config TRACING_MUTEX
bool "Tracing Mutexes"
default y
help
Enable tracing Mutexes.
config TRACING_CONDVAR
bool "Tracing Condition Variables"
default y
help
Enable tracing Condition Variables
config TRACING_QUEUE
bool "Tracing Queues"
default y
help
Enable tracing Queues.
config TRACING_FIFO
bool "Tracing FIFO queues"
default y
help
Enable tracing FIFO queues.
config TRACING_LIFO
bool "Tracing LIFO queues"
default y
help
Enable tracing LIFO queues.
config TRACING_STACK
bool "Tracing Memory Stacks"
default y
help
Enable tracing Memory Stacks.
config TRACING_MESSAGE_QUEUE
bool "Tracing Message Queues"
default y
help
Enable tracing Message Queues.
config TRACING_MAILBOX
bool "Tracing Mailboxes"
default y
help
Enable tracing Mailboxes.
config TRACING_PIPE
bool "Tracing Pipes"
default y
help
Enable tracing Pipes.
config TRACING_HEAP
bool "Tracing Memory Heaps"
default y
help
Enable tracing Memory Heaps.
config TRACING_MEMORY_SLAB
bool "Tracing Memory Slabs"
default y
help
Enable tracing Memory Slabs.
config TRACING_TIMER
bool "Tracing Timers"
default y
help
Enable tracing Timers.
config TRACING_EVENT
bool "Tracing Events"
default y
help
Enable tracing Events.
config TRACING_POLLING
bool "Tracing Polling"
default y
help
Enable tracing Work Polling and Polling API.
config TRACING_PM
bool "Tracing Power Management"
default y
help
Enable tracing Power Management.
config TRACING_NETWORKING
bool "Tracing Network Objects"
default y if NETWORKING
help
Enable tracing network objects.
config TRACING_NET_SOCKETS
bool "Tracing Network Sockets"
depends on TRACING_NETWORKING
default y if NET_SOCKETS
help
Enable tracing network sockets.
config TRACING_NET_CORE
bool "Tracing Network Core IP stack"
depends on TRACING_NETWORKING
default y if NET_IP
help
Enable tracing core network IP stack, like packet reception
and sending.
endmenu # Tracing Configuration
endif
source "subsys/tracing/sysview/Kconfig"