Zephyr Workqueues: How They Work and Queue
summary
Demonstrates that Zephyr workqueues offload non‑urgent ISR work by moving callbacks into a thread, using live demos and code inspection of k_work_submit and init paths; one demo shows an ISR sleep causing a deadlock then switching to the sys_workq fixes the immediate blocking (counter jumps from 8 to 10); explains that sys_workq is a single cooperative thread shared across the system, submission is idempotent (k_work_submit only queues an item once), delayable work and k_work_cancel exist, and shared queues can become bottlenecks—use dedicated workqueues, zbus, or RTIO for different 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
20mMulti-Queue Fair Queuing
22mHigh Bandwidth Sensors
43mSleeping on the job
19mSpeeding Up VM’s I/O Sharing Host's io_uring Queues With Guests
23mScalable Work Submission in Device Virtualization
44mActive Queue Management - What it is, and why you should care
21mDo Not Disturb Mode: Fine-Tuning Resources for Latency Sensitive Workloads
38mProcrastination as a Service: Caching and Queueing
