Extended User Interrupts (xUI): Fast and Flexible Notification without Polling | |
---|---|
Author | Berk Aydogmus, Linsong Guo, Danial Zuberi, Tal Garfinkel, Dean Tullsen, Amy Ousterhout, Kazem Taram |
Conference | ACM ASPLOS |
Year | 2025 |
개요
Intel UIPI의 기능을 분석하고, 이를 기반으로 User Interrupt 처리 효율을 향상시키는 네 가지 모델, Tracked Interrupt, Hardware Safepoints, Kernel Bypass Timer, 그리고 Interrupt Forwarding을 제안하였다.
Motivation & Importance
User-level scheduling 알고리즘은 효율성에도 불구하고, 여전히 IPI(Inter-Processor Interrupt) 나 Timer 인터페이스를 polling 또는 OS interrupt 에 의존하기 때문에 근본적인 비효율을 피할 수 없다. 그 결과, 대부분의 user-level threading 시스템은 preemption을 아예 지원하지 않거나, 혹은 preemption 빈도를 제한하는 제약을 둘 수밖에 없었다.
한편, Intel UIPI를 단순히 적용하는 것은 해결책이 될 수 없다. 이는 UIPI가 다음과 같은 한계를 가지기 때문이다
- Polling보다 느리고,
- Interrupt 발생 시점을 정밀하게 제어할 수 없으며,
- Device interrupt나 Timer interrupt 기능을 지원하지 않는다.
Background
Intel UIPI문서 참고.
Main Idea
User-level interrupt을 허용하는 Intel UIPI를 이용하여서 다음 4개의 Primitive을 제공하였다.
- Tracked interrupts: Intel UIPI를 MicroArchitecture-level에서 최적화 하여 거의 Memory pooling에 맞먹는 성능의 Interrupt기능 제공
- Hardware safepoints: 언제 Interrupt가 도달할지 정교한 제어를 가능하게 함
- Kernel bypass timer: 새로 User-level timer을 위한 Instruction을 제공하여, User-level timer기능 제공
- Interrupt forwarding: Device가 User-level에 직접 Interrupt을 날릴 수 있도록 기능 제공
Conclusion
Intel UIPI의 성능 분석을 Microarchitecture-level까지 자세하게 설명하여, Intel UIPI의 작동원리에 대해서 배울 수 있는 좋은 논문이었다. 그러나 다지인이 모두 새로운 Instruction을 추가하는 것이며, 이 성능 분석을 gem5 Simulator위에서 수행하여서, 정확히 Intel CPU에 적용시켰을 경우 어떤 성능이 나올 것인지 측정한 것이 아니라는 점이 아쉬운 부분이었다. 그러나 Intel UIPI가 어떠한 장점/단점을 가지고 이를 해결하기 위해서는 Architecture-level에서 어떤 최적화를 수행해야 하는지 탐구한 점에서 의미있는 논문이라 생각한다.