Having 64-bits guests support without VT-x / AMD-V
Posted: 29. Dec 2008, 20:08
I would like to know why with 64-bits guests, we absolutely need VT-x or AMD-V support. Every single virtualization software seem to need these instructions in order to support 64-bits guests.
At first, I didn't understand and thought that the reason may be that there's only two PL (Privilege Level) in Long mode on x86 CPU. This would be explained by the fact that guest OS system code runs at CPL=1 and user code at CPL=3. If you only have two PL, then its harder because your guest OS system code needs to run at CPL=3 as well. I verified in x64 doc and it's not the case, all four PL are there.
Then I thought that maybe virtualization software on x86 make heavy use of segmentation. This would explain the need for VT-x and al support because segmentation has been removed from x64. I don't have any confirmation on that one yet. So that was my first question.
My second question would then be if this support is needed to simplify virtualization software developers tasks, meaning that full 64-bits guests support would be possible, but difficult, without these instructions. Or if it is absolutely physically impossible to have 64-bits guests without them.
If it is indeed possible to have 64-bits guests without VT-x and AMD-V then I would highly suggest you add this support. I have a good P7350 CPU, from the Penryn generation, but without VT-x support. So right now I can't have 64-bits guests.
At first, I didn't understand and thought that the reason may be that there's only two PL (Privilege Level) in Long mode on x86 CPU. This would be explained by the fact that guest OS system code runs at CPL=1 and user code at CPL=3. If you only have two PL, then its harder because your guest OS system code needs to run at CPL=3 as well. I verified in x64 doc and it's not the case, all four PL are there.
Then I thought that maybe virtualization software on x86 make heavy use of segmentation. This would explain the need for VT-x and al support because segmentation has been removed from x64. I don't have any confirmation on that one yet. So that was my first question.
My second question would then be if this support is needed to simplify virtualization software developers tasks, meaning that full 64-bits guests support would be possible, but difficult, without these instructions. Or if it is absolutely physically impossible to have 64-bits guests without them.
If it is indeed possible to have 64-bits guests without VT-x and AMD-V then I would highly suggest you add this support. I have a good P7350 CPU, from the Penryn generation, but without VT-x support. So right now I can't have 64-bits guests.