SuperPass: Fast-Tracking Blocking Threads to Mitigate Priority Inversion on Mobile Devices
2026-07-20 • Operating Systems
Operating Systems
AI summaryⓘ
The authors studied a problem on Android phones where important tasks, like the app's user interface (UI), get delayed because slower, less important tasks are using the processor first. They found that this priority inversion happens a lot and causes slow, laggy apps. To fix this, they made a new system called SuperPass that quickly lets the slow tasks blocking the important ones run first, reducing delays and improving responsiveness. Tests on a Pixel 8 showed SuperPass cuts long delays by over 70% and reduces lag without using much extra CPU power, working better than other existing solutions.
priority inversionlatency-critical threadreal-time systemsschedulerCPU waiting timelock-level detectorpriority inheritanceAndroid operating systemUI threadsystem overhead
Authors
Lei Li, Yu Liang, Riwei Pan, Youcheng Sun, Nan Guan, Tei-Wei Kuo, Chun Jason Xue
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.