SuperPass: Fast-Tracking Blocking Threads to Mitigate Priority Inversion on Mobile Devices

πŸ“… 2026-07-20
πŸ“ˆ Citations: 0
✨ Influential: 0
πŸ“„ PDF
πŸ€– AI Summary
This work addresses severe priority inversion in Android systems, where low-priority threads frequently block high-priority, latency-sensitive threads, leading to UI jank and frame drops. To mitigate this issue, the authors propose SuperPassβ€”a lightweight kernel mechanism that dynamically identifies and accelerates critical low-priority threads upon which high-priority threads depend, leveraging lock-level blocking detection and a fast scheduling pathway. The key insight is that tracking only a limited number of such blocking threads suffices to yield substantial responsiveness improvements. Evaluations on a Pixel 8 device demonstrate that, compared to the default scheduler, SuperPass reduces the 99.9th-percentile blocking duration by 72.0%, decreases the number of blocking incidents by 47.7%, and lowers janky frames by 29.2%, with only a 0.74% increase in CPU overhead.
πŸ“ Abstract
Priority inversion occurs when a high-priority thread is delayed by a lower-priority one. Although well studied in real-time systems, its impact in general-purpose OSes (e.g., Android) remains underexplored.On Android, we find that priority inversions happen frequently and can delay latency-critical threads, degrading user experience.For example, the foreground app's UI thread is frequently blocked by low-priority threads, with blocking durations of up to 210 ms, enough to cause dropped frames.Existing solutions designed for real-time systems fail to eliminate long priority-inversion blockings on latency-critical threads and may introduce high overhead on Android. To solve this problem, we uncover two insights on Android: 1) long blockings are mainly due to the accumulated CPU waiting time of low-priority blocking threads rather than their critical-section latency; and 2) although latency-critical threads can be blocked by many concurrent readers, tracking a limited number of them is sufficient to achieve good responsiveness with low overhead in most cases. Guided by these insights, we propose SuperPass, a lightweight kernel mechanism that mitigates priority inversion by fast-track scheduling of low-priority threads blocking latency-critical threads. It introduces a scheduler fast track that grants immediate CPU access to threads blocking latency-critical threads, and employs a lock-level detector that effectively identifies most such blocking threads. We evaluate SuperPasson a Google Pixel 8 smartphone. Taking UI thread as a case study, SuperPass decreases the 99.9th-percentile blocking duration by 72.0% and blocking count by 47.7% on average compared to the default scheduler, and reduces janky frames by 29.2% with a system-wide CPU overhead of only 0.74%. SuperPass also outperforms existing approaches including priority inheritance, real-time UI promotion, and Proxy Execution.
Problem

Research questions and friction points this paper is trying to address.

priority inversion
latency-critical threads
blocking threads
mobile devices
Android
Innovation

Methods, ideas, or system contributions that make the work stand out.

priority inversion
fast-track scheduling
latency-critical threads
Android scheduler
SuperPass
πŸ”Ž Similar Papers