개요

Reasons

[7] Interrupt Window Exiting
Interrupt window exiting 이라는 VM execution control bit가 enable되면, VM entry혹은 VM의 다음 명령어가 실행되는 순간 VM exit이 발생한다.
  • RFLAGS.IF = 1 (외부 인터럽트가 unmaksed됨)
  • STI혹은 MOV SS처럼 인터럽트를 허용하는 순간
Interrupt window exiting은 VMM소프트웨어가 Interrupt을 Inject혹은 Deliver하는 과정에서 Guest VM이 인터럽트를 끈 상태에서, 인터럽트가 전송되지 않는 문제를 해결하기 위해서 만들어진 bit이다. Interrupt window exiting이 없다면 VMM은 Guest VM을 계속 풀링 때리면서 인터럽트가 허용되는지를 주기적으로 체크해야 한다. 이러한 문제를 해결하기 위해서, Interrupt window exiting은 Guest가 인터럽트를 허용하는 순간 VM exit이 나고 Host에서 window안에 큐잉하던 인터럽트를 한번에 그 exit에서 처리할 수 있도록 해준다.