VirtualBox

Changeset 46925 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Jul 3, 2013 11:16:39 AM (11 years ago)
Author:
vboxsync
Message:

VMM: Optimized world-switch with lazy restoration LDTR and TR on Intel.

Location:
trunk/include/VBox/vmm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/vmm/hm_vmx.h

    r46379 r46925  
    4545#define VMX_RESTORE_HOST_SEL_FS               RT_BIT(2)
    4646#define VMX_RESTORE_HOST_SEL_GS               RT_BIT(3)
    47 #define VMX_RESTORE_HOST_GDTR                 RT_BIT(4)
    48 #define VMX_RESTORE_HOST_IDTR                 RT_BIT(5)
    49 #define VMX_RESTORE_HOST_LDTR                 RT_BIT(6)
     47#define VMX_RESTORE_HOST_SEL_LDTR             RT_BIT(4)
     48#define VMX_RESTORE_HOST_SEL_TR               RT_BIT(5)
     49#define VMX_RESTORE_HOST_GDTR                 RT_BIT(6)
     50#define VMX_RESTORE_HOST_IDTR                 RT_BIT(7)
    5051/** @} */
    5152
     
    6263    RTSEL       uHostSelFS;     /* 0x04 */
    6364    RTSEL       uHostSelGS;     /* 0x06 */
    64     uint64_t    uHostFSBase;    /* 0x08 */
    65     uint64_t    uHostGSBase;    /* 0x10 */
    66     X86XDTR64   HostGdtr;       /* 0x18 */
    67     X86XDTR64   HostIdtr;       /* 0x22 */
     65    RTSEL       uHostSelLDTR;   /* 0x08 */
     66    RTSEL       uHostSelTR;     /* 0x0a */
     67    uint32_t    u32Padding;     /* 0x0c */
     68    uint64_t    uHostFSBase;    /* 0x10 */
     69    uint64_t    uHostGSBase;    /* 0x18 */
     70    X86XDTR64   HostGdtr;       /* 0x20 */
     71    X86XDTR64   HostIdtr;       /* 0x2a */
    6872} VMXRESTOREHOST;
    6973#pragma pack()
     
    7175typedef VMXRESTOREHOST *PVMXRESTOREHOST;
    7276AssertCompileSize(X86XDTR64, 10);
    73 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelES, 2);
    74 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelFS, 4);
    75 AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelGS, 6);
    76 AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase, 8);
    77 AssertCompileMemberOffset(VMXRESTOREHOST, uHostGSBase, 16);
    78 AssertCompileMemberOffset(VMXRESTOREHOST, HostGdtr, 24);
    79 AssertCompileMemberOffset(VMXRESTOREHOST, HostIdtr, 34);
    80 AssertCompileSize(VMXRESTOREHOST, 44);
     77AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelDS,    0);
     78AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelES,    2);
     79AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelFS,    4);
     80AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelGS,    6);
     81AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelLDTR,  8);
     82AssertCompileMemberOffset(VMXRESTOREHOST, uHostSelTR,   10);
     83AssertCompileMemberOffset(VMXRESTOREHOST, uHostFSBase,  16);
     84AssertCompileMemberOffset(VMXRESTOREHOST, uHostGSBase,  24);
     85AssertCompileMemberOffset(VMXRESTOREHOST, HostGdtr,     32);
     86AssertCompileMemberOffset(VMXRESTOREHOST, HostIdtr,     42);
     87AssertCompileSize(VMXRESTOREHOST, 52);
    8188
    8289/** @name VMX VMCS-Read cache indices.
  • trunk/include/VBox/vmm/hm_vmx.mac

    r46312 r46925  
    6161%define VMX_VMCS_GUEST_DEBUGCTL_FULL                            02802h
    6262%define VMX_VMCS_GUEST_DEBUGCTL_HIGH                            02803h
    63 %define VMX_VMCS_CTRL_PIN_EXEC                                  04000h
    64 %define VMX_VMCS_CTRL_PROC_EXEC                                 04002h
     63%define VMX_VMCS_CTRL_PIN_EXEC                                  04000h
     64%define VMX_VMCS_CTRL_PROC_EXEC                                 04002h
    6565%define VMX_VMCS_CTRL_EXCEPTION_BITMAP                          04004h
    6666%define VMX_VMCS_CTRL_PAGEFAULT_ERROR_MASK                      04006h
    6767%define VMX_VMCS_CTRL_PAGEFAULT_ERROR_MATCH                     04008h
    6868%define VMX_VMCS_CTRL_CR3_TARGET_COUNT                          0400Ah
    69 %define VMX_VMCS_CTRL_EXIT                                      0400Ch
     69%define VMX_VMCS_CTRL_EXIT                                      0400Ch
    7070%define VMX_VMCS_CTRL_EXIT_MSR_STORE_COUNT                      0400Eh
    7171%define VMX_VMCS_CTRL_EXIT_MSR_LOAD_COUNT                       04010h
    72 %define VMX_VMCS_CTRL_ENTRY                                     04012h
     72%define VMX_VMCS_CTRL_ENTRY                                     04012h
    7373%define VMX_VMCS_CTRL_ENTRY_MSR_LOAD_COUNT                      04014h
    7474%define VMX_VMCS_CTRL_ENTRY_IRQ_INFO                            04016h
     
    152152%define VMX_VMCS_HOST_RIP                                       06C16h
    153153
    154 %define VMX_RESTORE_HOST_SEL_DS                                 1h      ;RT_BIT(0)
    155 %define VMX_RESTORE_HOST_SEL_ES                                 2h      ;RT_BIT(1)
    156 %define VMX_RESTORE_HOST_SEL_FS                                 4h      ;RT_BIT(2)
    157 %define VMX_RESTORE_HOST_SEL_GS                                 8h      ;RT_BIT(3)
    158 %define VMX_RESTORE_HOST_GDTR                                   10h     ;RT_BIT(4)
    159 %define VMX_RESTORE_HOST_IDTR                                   20h     ;RT_BIT(5)
    160 %define VMX_RESTORE_HOST_LDTR                                   40h     ;RT_BIT(6)
     154%define VMX_RESTORE_HOST_SEL_DS                                 1h    ;RT_BIT(0)
     155%define VMX_RESTORE_HOST_SEL_ES                                 2h    ;RT_BIT(1)
     156%define VMX_RESTORE_HOST_SEL_FS                                 4h    ;RT_BIT(2)
     157%define VMX_RESTORE_HOST_SEL_GS                                 8h    ;RT_BIT(3)
     158%define VMX_RESTORE_HOST_SEL_LDTR                               10h   ;RT_BIT(4)
     159%define VMX_RESTORE_HOST_SEL_TR                                 20h   ;RT_BIT(5)
     160%define VMX_RESTORE_HOST_GDTR                                   40h   ;RT_BIT(6)
     161%define VMX_RESTORE_HOST_IDTR                                   80h   ;RT_BIT(7)
    161162
    162163struc VMXRESTOREHOST
     
    165166    .uHostSelFS         resw    1
    166167    .uHostSelGS         resw    1
     168    .uHostSelLDTR       resw    1
     169    .uHostSelTR         resw    1
     170    .u32Padding         resd    1
    167171    .uHostFSBase        resq    1
    168172    .uHostGSBase        resq    1
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette