Intel x86_64 processor VMX control structures fetch

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
cianfa72
Member
Member
Posts: 100
Joined: Sat Dec 22, 2012 12:01 pm

Intel x86_64 processor VMX control structures fetch

Post by cianfa72 »

Hello, I'd like to dig into some detail about Intel VT-x implementation on x86_64 processors.

As far as I know, there are two main control structures involved in VMX operations: VMXON and VMCS regions. They are up to 4 KiB in size and are allocated from host physical memory (RAM).

VMX operations are enabled and managed by using VMXON and VMPTRLD instructions. Their operands are the m64 physical/machine addresses in RAM of the relevant VMX structures. Thus, for instance, VMPTRLD loads internally in the processor/core the physical address of a VMCS structure.

No my question is: are those structures actually fetched internally by the processor/core ? My question is related to how, for instance, x86 processors fetch internally the complete segment descriptors (even though they are hidden in segment registers and aren't accessible/visible from code) by loading the relevant segment selectors into segment registers (e.g. CS register). Thanks.
Octocontrabass
Member
Member
Posts: 5822
Joined: Mon Mar 25, 2013 7:01 pm

Re: Intel x86_64 processor VMX control structures fetch

Post by Octocontrabass »

cianfa72 wrote: Mon May 26, 2025 7:28 amNo my question is: are those structures actually fetched internally by the processor/core ?
Yes, but the details are implementation-defined behavior.
Post Reply