Zephyr Workqueues: How They Work and Queue
summary
Demo code shows a timer-plus-sleep change that triggers an ISR-context crash, proving ISRs must not block and motivating offload to workqueues. Zephyr’s sys_workq is cooperative and shared so one slow handler delays all queued items; work items are serialized and k_work_submit is idempotent per item so submitting twice only queues once. The implementation tour inspects k_work_submit, delayable work for debouncing, and k_work_cancel race cases, and recommends zbus or RTIO for higher performance needs.
AI-written summary · about
chapters (8)
- 0:00Zephyr workqueues intro
- 2:55Timer deadlines and ISR demo
- 7:51Offload work from interrupts
- 13:06System workqueue design
- 16:58Zephyr workqueue internals
- 21:20Workqueue challenges and fixes
- 25:18Workqueue use cases
- 27:36Q&A on latency
related talks
42mInter Process Confusion - Navigating Zephyr's IPC APIs
40mOptimizing Zephyr for Peak Performance
33mA Block Stream API for Zephyr
35mMulti-core Application Development with Zephyr RTOS
35mMulti-core Application Development with Zephyr RTOS
05mZephyr
41mTurning the Ignition on Safety: Zephyr RTOS in Automotive Compliance
40mReal-Time I/O (RTIO) for Developing Real-Time Zephyr Applications
