2.3 KiB
2.3 KiB
세 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: L2443–L2445, L2484–L2485.
- Guest Kernel (service): Guest Page Fault 를 받는 계층. Evidence: L2487–L2487, L2493–L2494.
- EPT (component): 두 번째 translation 단계. Guest translation 이 성공한 뒤 여기서 막히면 EPT Violation 이 난다. Evidence: L2465–L2469, L2484–L2485.
- KVM (service): EPT Violation 을 VM Exit 뒤에 받는 계층. Evidence: L2471–L2473, L2487–L2487.
- QEMU · Guest RAM Backing (store): Host 의 일반 userspace 메모리로 관리되는 자리. demand allocation 이나 reclaim, swap 때문에 여기서 fault 가 난다. Evidence: L2504–L2504, L2514–L2519.
- Host Kernel (service): Host Page Fault 를 받아 필요한 Host page 를 처리하는 계층. Evidence: L2521–L2525.
Relationships
- EPT → KVM: EPT Violation · VM Exit. Evidence: L2467–L2473, L2487–L2487.
- Guest Page Table → Guest Kernel: Guest Page Fault. Evidence: L2484–L2487, L2493–L2494.
- QEMU · Guest RAM Backing → Host Kernel: Host Page Fault. Evidence: L2517–L2525.
- Guest Page Table → EPT: GPA. Evidence: L2461–L2467.