VM exit는 게스트와 호스트 사이의 ‘선택적 왕복’이다

일반 명령과 보통의 주소 변환은 하드웨어에서 계속 진행된다. 가상화 제어가 가로채도록 설정한 이벤트만 호스트로 전환되고, KVM 내부 처리와 userspace VMM 처리가 다시 갈린다.

01 guest 실행

VCPU가 일반 명령을 직접 실행한다.

guest mode
02 exit 발생

설정된 intercept, PIO·MMIO 같은 이벤트가 제어권을 넘긴다.

VM exit
03 KVM 분류

커널 안에서 끝낼지 VMM에 반환할지 결정한다.

exit reason
04 VMM 중재

필요할 때 I/O·MMIO를 에뮬레이션하고 결과를 채운다.

KVM_EXIT_IO
05 guest 복귀

다음 KVM_RUN에서 미완료 동작을 끝내고 VCPU를 재개한다.

VM entry
메모리
nested paging

EPT/NPT가 일반적인 2단계 변환을 하드웨어로 처리한다. 모든 메모리 접근이 exit를 만드는 것은 아니다.

GVAGPAHPA
장치
virtio

guest 드라이버와 hypervisor가 virtqueue 계약을 공유해 완전한 하드웨어 에뮬레이션 비용을 줄인다.

원인어떤 명령·I/O·정책이 exit를 만들었는가
상태kernel 안에서 끝났는가, VMM까지 반환됐는가
검증kvm:kvm_exitkvm_run.exit_reason으로 빈도·종류를 확인