Hi List, 

I prepared some notes for CR3 involvement in different IO
operations, so here are the notes

-       memory-mapped IO & DMA IO:      
        -       Each such operation involves MOV to/from CR3 :
        -       MOV from CR3 causes "Unconditional VM exit"
         -      MOV to CR3 causes "Conditional VM exit" :
                -       The MOV to CR3 instruction causes a VM exit unless the 
value
of its
                        source operand is equal to one of the CR3-target values 
specified in 
                        the VMCS (controlled by Hypervisor). This feature 
allows a guest
kernel to 
                        change the CR3 value without causing a world switch to 
the
hypervisor,
                        provided that the value written into the CR3 register 
was previously 
                        specified by the hypervisor in the CR3-Target 
registers. An
execution 
                        of MOV to CR3 in VMX non-root operation does not cause 
a VM exit if 
                        its source operand matches one of these previsously 
stored values. 
                        If the CR3-target count is n, only the first n (0 .. 
(n-1))
CR3-target 
                        values do not cause VM-Exit. nth value causes VM-Exit. 
if n=0 , 
                         MOV to CR3 always causes VM-Exit.

Please comment if I understood something incorrectly here.

Regards,
K Arun Kumar 
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to