Inter Process Confusion - Navigating Zephyr's IPC APIs
summary
Zephyr offers many overlapping IPC primitives and that abundance causes poor choices; semaphores are the low‑cost default for locking and short waits, km semaphores act like lightweight tokens, mutexes add priority inheritance at extra cost, and condition variables solve atomic release+wait for complex races. Queues, message q and pipes, cover fixed messages or byte streams; k_event is lighter than k_poll for multiplexing. User space adds syscall and caching overhead; futex-like fast paths exist but are tricky.
AI-written summary · about
chapters (9)
- 0:00Introduction to IPC
- 3:34The problem of polling
- 7:19Out of scope concepts
- 11:21Kernel foundations
- 16:27Semaphores and mutexes
- 21:46Queuing mechanisms
- 29:45Avoiding race conditions
- 33:50Multiplexing inputs
- 36:21User space and summary
related talks
35mZephyr Workqueues: How They Work and Queue
40mOptimizing Zephyr for Peak Performance
35mMulti-core Application Development with Zephyr RTOS
35mMulti-core Application Development with Zephyr RTOS
45mImplementing Network Protocols in Zephyr Project
47mSponsored Session: Does Zephyr Scare the Bare Metal Embedded Developer World?
46mSecurity in Zephyr and Fuchsia
29mLogging in Multi-core Environment
