Logging in Multi-core Environment
summary
Zephyr adds concrete extensions for multi-core logging: messages carry domain ids assigned dynamically using per-link offsets, and backends pair with a link that forwards messages between domains. String formatting uses a cbprintf package that can be transient, self-contained, or fully self-contained and is upgraded before crossing domains. Source names use a cache to reduce IPC. Ordering uses per-link buffers with ordering delay and selecting oldest messages; option to use Arm CoreSight STM for merged hardware trace is demonstrated.
AI-written summary · about
chapters (15)
- 0:00Intro
- 1:44Agenda
- 3:07Assumptions & Preconditions
- 5:49Challenges
- 6:44Logging recap - message content
- 8:28Cbprintf package-formatted string snapshot
- 10:35Deferred logging in three stages
- 11:29Multi-domain architecture
- 13:20Logging Link
- 14:34DomainID addressing
- 18:41Getting source name
- 20:20Fully self-contained package
- 23:08Conversion
- 25:16Ordering
- 27:48ARM Coresight - HW solution example
related talks
42mInter Process Confusion - Navigating Zephyr's IPC APIs
45mReactive design patterns for microservices on multicore
35mHigh Throughput with Low Resource Usage: A Logging Journey
26mAdding Coredumps to Your Debugging Toolkit
38mLogging in the age of Microservices and the Cloud
01h 32mKeynote: Employing Senders & Receivers to Tame Concurrency in C++ Embedded Systems
01h 01mStructured Networking
13mThe Semantics of Shared Memory in Intel CPU/FPGA Systems
