Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
Vol. 3 27-9
VIRTUALIZATION OF SYSTEM RESOURCES
b. If the active PDE contains a page base address (if PS = 1), then set the page
base address in the active PDE to be the physical page base address that
corresponds to the guest address in the guest PDE.
c. Set the P, U/S, and PS bits in the active PDE to be identical to those in the
guest PDE.
d. Set the PWT, PCD, and G bits according to the policy of the VMM.
e. Set A = 1 in the guest PDE.
f. If D = 1 in the guest PDE or PS = 0 (meaning that this PDE refers to a page
table), then set the R/W bit in the active PDE as in the guest PDE.
g. If D = 0 in the guest PDE, PS = 1 (this is a 4-MByte page), and the attempted
access is a write; then set R/W in the active PDE as in the guest PDE and set
D = 1 in the guest PDE.
h. If D = 0 in the guest PDE, PS = 1, and the attempted access is not a write;
then set R/W = 0 in the active PDE.
i. After modifying the active PDE, re-execute the faulting instruction.
The remaining steps assume that the active PDE is already marked present.
5. If the active PDE is the source of the fault, the active PDE refers to a 4-MByte
page (PS = 1), the attempted access is a write; D = 0 in the guest PDE, and the
active PDE has caused a fault solely because it has R/W = 0; then set R/W in the
active PDE as in the guest PDE; set D = 1 in the guest PDE, and re-execute the
faulting instruction.
6. If the active PDE is the source of the fault and none of the above cases apply,
then raise a page fault of the guest operating system.
The remaining steps assume that the source of the original page fault is not the
active PDE.
NOTE
It is possible that the active PDE might be causing a fault even
though the guest PDE would not. However, this can happen only if the
guest operating system increased access in the guest PDE and did
not take action to ensure that older translations were flushed from
the TLB. Such translations might have caused a page fault if the
guest software were running on bare hardware.
7. If the active PDE refers to a 4-MByte page (PS = 1) but is not the source of the
fault, then the fault resulted from an inconsistency between the active page-table
hierarchy and the processor’s TLB. Since the transition to the VMM caused an
address-space change and flushed the processors TLB, the VMM can simply re-
execute the faulting instruction.
The remaining steps assume that PS = 0 in the active and guest PDEs.