Precision Timeouts in Zephyr: Past, Present, and Future
Talkat Open Source Summit Europe + Embedded Linux Conference Europe 2019 · on Monday, 2019-10-28· at 16:20· Forum 6·
summary
Zephyr timeout benchmarking uses a 100-test benchmark comparing k_timer against k_busy_wait and k_microsleep and finds premature expirations and occasional spikes — sleeps meant to be 1 µs sometimes run >10 ms — due to tick rounding, adding/removing timeouts, and hardware cycle alignment. Fixes raise resolution from 10 ms to ~30.5 µs on Nordic, eliminate several bugs, and a proposed 64-bit timeout spec with rounding-mode and clock-source choices fits in 64 bits with <1% code-size impact and negligible runtime cost.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:13Zephyr API calls
- 3:38Properties of the subsystem
- 5:45Bluetooth example
- 8:45Zephyr benchmark
- 9:53Ideal results
- 11:51Bad results
- 12:26Good results
- 17:02Ticks per second
- 18:31Fixing the problem
- 19:29Proposed changes
related talks
29mPrecision Timeouts in Zephyr: Past, Present, and Future
40mOptimizing Zephyr for Peak Performance
11mLightning Talk: Implementing the Precision Time Protocol (PTP) in the Zephyr Proj...
47mUpdates To Clock Management Within Zephyr RTOS
40mReworking the Zephyr Clock Control Subsystem
57mZephyr RTOS Debugging and Performance Analysis
49mThe Zephyr™ Project – An Updated Overview
40mClock Management in Zephyr RTOS
