IO operations and MOV to/from CR3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux