메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Extended User Interrupts (xUI): Fast and Flexible Notification without Polling

noriwiki
Extended User Interrupts (xUI): Fast and Flexible Notification without Polling
AuthorBerk Aydogmus, Linsong Guo, Danial Zuberi, Tal Garfinkel, Dean Tullsen, Amy Ousterhout, Kazem Taram
ConferenceACM ASPLOS
Year2025

개요

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가 다음과 같은 한계를 가지기 때문이다

  1. Polling보다 느리고,
  2. Interrupt 발생 시점을 정밀하게 제어할 수 없으며,
  3. 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에서 어떤 최적화를 수행해야 하는지 탐구한 점에서 의미있는 논문이라 생각한다.