Files
document-haness/docs/virtualization/final/assets/diagrams/page-fault-layers-in-a-vm/page-fault-layers-in-a-vm.alt.md
T

2.3 KiB
Raw Blame History

세 fault 는 변환 사슬의 서로 다른 단계에서 갈라져 나가 서로 다른 계층이 받는다

Alternative text

Guest Page Table 과 EPT, QEMU 의 Guest RAM Backing 에서 각각 fault 가 갈라져 Guest Kernel · KVM · Host Kernel 로 가는 갈래도.

Long description

위에서 아래로 읽는다. 맨 위 왼쪽에 Guest Page Table 이 있고 거기서 갈래가 둘이다. 하나는 Guest Page Fault 로 Guest Kernel 에 빠지고, 다른 하나는 GPA 를 들고 아래 EPT 로 내려간다. EPT 에서도 갈래가 나뉘어 EPT Violation 은 VM Exit 을 거쳐 KVM 으로 간다. 맨 위 오른쪽에는 QEMU 의 Guest RAM Backing 이 따로 있고 그쪽 갈래인 Host Page Fault 는 Host Kernel 로 간다. 받는 자리의 이름이 그대로 계층 이름이다 — Guest Kernel · KVM · Host Kernel. QEMU 갈래가 EPT 갈래와 선으로 이어져 있지 않은 것은 근거 문서가 둘을 잇는 문장을 두지 않았기 때문이다. 다섯 원인이 무엇인지와 두 사건을 항목별로 견주는 것은 본문의 표가 맡는다.

Elements and evidence

  • Guest Page Table (component): 첫 번째 translation 단계. 여기서 접근을 완료할 수 없으면 Guest Page Fault 가 난다. Evidence: L2456L2458, L2497L2498.
  • Guest Kernel (service): Guest Page Fault 를 받는 계층. Evidence: L2500L2500, L2506L2507.
  • EPT (component): 두 번째 translation 단계. Guest translation 이 성공한 뒤 여기서 막히면 EPT Violation 이 난다. Evidence: L2478L2482, L2497L2498.
  • KVM (service): EPT Violation 을 VM Exit 뒤에 받는 계층. Evidence: L2484L2486, L2500L2500.
  • QEMU · Guest RAM Backing (store): Host 의 일반 userspace 메모리로 관리되는 자리. demand allocation 이나 reclaim, swap 때문에 여기서 fault 가 난다. Evidence: L2517L2517, L2527L2532.
  • Host Kernel (service): Host Page Fault 를 받아 필요한 Host page 를 처리하는 계층. Evidence: L2534L2538.

Relationships

  • EPT → KVM: EPT Violation · VM Exit. Evidence: L2480L2486, L2500L2500.
  • Guest Page Table → Guest Kernel: Guest #PF. Evidence: L2497L2500, L2506L2507.
  • QEMU · Guest RAM Backing → Host Kernel: Host #PF. Evidence: L2530L2538.
  • Guest Page Table → EPT: GPA. Evidence: L2474L2480.