VirtualBox

Changeset 27166 in vbox


Ignore:
Timestamp:
Mar 8, 2010 2:16:00 PM (15 years ago)
Author:
vboxsync
Message:

Added large page property.

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/settings.h

    r26830 r27166  
    561561                        fHardwareVirtExclusive,
    562562                        fNestedPaging,
     563                        fLargePages,
    563564                        fVPID,
    564565                        fSyntheticCpu,
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r27062 r27166  
    165165                 "                            [--hwvirtex on|off]\n"
    166166                 "                            [--nestedpaging on|off]\n"
     167                 "                            [--largepages on|off]\n"
    167168                 "                            [--vtxvpid on|off]\n"
    168169                 "                            [--cpuidset <leaf> <eax> <ebx> <ecx> <edx>]\n"
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r26951 r27166  
    432432    else
    433433        RTPrintf("Nested Paging:   %s\n", HWVirtExNestedPagingEnabled ? "on" : "off");
     434
     435    BOOL HWVirtExLargePagesEnabled;
     436    machine->GetHWVirtExProperty(HWVirtExPropertyType_LargePages, &HWVirtExLargePagesEnabled);
     437    if (details == VMINFO_MACHINEREADABLE)
     438        RTPrintf("largepages=\"%s\"\n", HWVirtExLargePagesEnabled ? "on" : "off");
     439    else
     440        RTPrintf("Large Pages:   %s\n", HWVirtExLargePagesEnabled ? "on" : "off");
    434441
    435442    BOOL HWVirtExVPIDEnabled;
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r26971 r27166  
    6969    MODIFYVM_HWVIRTEXEXCLUSIVE,
    7070    MODIFYVM_NESTEDPAGING,
     71    MODIFYVM_LARGEPAGES,
    7172    MODIFYVM_VTXVPID,
    7273    MODIFYVM_CPUS,
     
    158159    { "--hwvirtexexcl",             MODIFYVM_HWVIRTEXEXCLUSIVE,         RTGETOPT_REQ_BOOL_ONOFF },
    159160    { "--nestedpaging",             MODIFYVM_NESTEDPAGING,              RTGETOPT_REQ_BOOL_ONOFF },
     161    { "--largepages",               MODIFYVM_LARGEPAGES,                RTGETOPT_REQ_BOOL_ONOFF },
    160162    { "--vtxvpid",                  MODIFYVM_VTXVPID,                   RTGETOPT_REQ_BOOL_ONOFF },
    161163    { "--cpuidset",                 MODIFYVM_SETCPUID,                  RTGETOPT_REQ_UINT32 | RTGETOPT_FLAG_HEX},
     
    425427            }
    426428
     429            case MODIFYVM_LARGEPAGES:
     430            {
     431                CHECK_ERROR(machine, SetHWVirtExProperty(HWVirtExPropertyType_LargePages, ValueUnion.f));
     432                break;
     433            }
     434
    427435            case MODIFYVM_VTXVPID:
    428436            {
  • trunk/src/VBox/Main/ConsoleImpl2.cpp

    r27045 r27166  
    481481    rc = CFGMR3InsertInteger(pHWVirtExt, "EnableNestedPaging", fEnableNestedPaging);     RC_CHECK();
    482482
     483    /* Large pages; requires nested paging */
     484    BOOL fEnableLargePages = false;
     485    hrc = pMachine->GetHWVirtExProperty(HWVirtExPropertyType_LargePages, &fEnableLargePages);   H();
     486    rc = CFGMR3InsertInteger(pHWVirtExt, "EnableLargePages", fEnableLargePages);     RC_CHECK();
     487
    483488    /* VPID (VT-x) */
    484489    BOOL fEnableVPID = false;
  • trunk/src/VBox/Main/MachineImpl.cpp

    r26951 r27166  
    164164    mHWVirtExEnabled = true;
    165165    mHWVirtExNestedPagingEnabled = true;
     166#if HC_ARCH_BITS == 64
     167    /* Default value decision pending. */
     168    mHWVirtExLargePagesEnabled = false;
     169#else
     170    /* Not supported on 32 bits hosts. */
     171    mHWVirtExLargePagesEnabled = false;
     172#endif
    166173    mHWVirtExVPIDEnabled = true;
    167174#if defined(RT_OS_DARWIN) || defined(RT_OS_WINDOWS)
     
    16611668    switch(property)
    16621669    {
    1663     case HWVirtExPropertyType_Enabled:
    1664         *aVal = mHWData->mHWVirtExEnabled;
    1665         break;
    1666 
    1667     case HWVirtExPropertyType_Exclusive:
    1668         *aVal = mHWData->mHWVirtExExclusive;
    1669         break;
    1670 
    1671     case HWVirtExPropertyType_VPID:
    1672         *aVal = mHWData->mHWVirtExVPIDEnabled;
    1673         break;
    1674 
    1675     case HWVirtExPropertyType_NestedPaging:
    1676         *aVal = mHWData->mHWVirtExNestedPagingEnabled;
    1677         break;
    1678 
    1679     default:
    1680         return E_INVALIDARG;
     1670        case HWVirtExPropertyType_Enabled:
     1671            *aVal = mHWData->mHWVirtExEnabled;
     1672            break;
     1673
     1674        case HWVirtExPropertyType_Exclusive:
     1675            *aVal = mHWData->mHWVirtExExclusive;
     1676            break;
     1677
     1678        case HWVirtExPropertyType_VPID:
     1679            *aVal = mHWData->mHWVirtExVPIDEnabled;
     1680            break;
     1681
     1682        case HWVirtExPropertyType_NestedPaging:
     1683            *aVal = mHWData->mHWVirtExNestedPagingEnabled;
     1684            break;
     1685
     1686        case HWVirtExPropertyType_LargePages:
     1687            *aVal = mHWData->mHWVirtExLargePagesEnabled;
     1688            break;
     1689
     1690        default:
     1691            return E_INVALIDARG;
    16811692    }
    16821693    return S_OK;
     
    16991710        case HWVirtExPropertyType_Enabled:
    17001711            pb = &mHWData->mHWVirtExEnabled;
    1701         break;
     1712            break;
    17021713
    17031714        case HWVirtExPropertyType_Exclusive:
    17041715            pb = &mHWData->mHWVirtExExclusive;
    1705         break;
     1716            break;
    17061717
    17071718        case HWVirtExPropertyType_VPID:
    17081719            pb = &mHWData->mHWVirtExVPIDEnabled;
    1709         break;
     1720            break;
    17101721
    17111722        case HWVirtExPropertyType_NestedPaging:
    17121723            pb = &mHWData->mHWVirtExNestedPagingEnabled;
    1713         break;
     1724            break;
     1725
     1726        case HWVirtExPropertyType_LargePages:
     1727            pb = &mHWData->mHWVirtExLargePagesEnabled;
     1728            break;
    17141729
    17151730        default:
     
    61986213        mHWData->mHWVirtExExclusive           = data.fHardwareVirtExclusive;
    61996214        mHWData->mHWVirtExNestedPagingEnabled = data.fNestedPaging;
     6215        mHWData->mHWVirtExLargePagesEnabled   = data.fLargePages;
    62006216        mHWData->mHWVirtExVPIDEnabled         = data.fVPID;
    62016217        mHWData->mPAEEnabled                  = data.fPAE;
     
    72547270        data.fHardwareVirtExclusive = !!mHWData->mHWVirtExExclusive;
    72557271        data.fNestedPaging          = !!mHWData->mHWVirtExNestedPagingEnabled;
     7272        data.fLargePages            = !!mHWData->mHWVirtExLargePagesEnabled;
    72567273        data.fVPID                  = !!mHWData->mHWVirtExVPIDEnabled;
    72577274        data.fPAE                   = !!mHWData->mPAEEnabled;
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r26968 r27166  
    866866      <desc>
    867867        Whether Nested Paging is enabled. If this extension is not available, it will not be used.
     868      </desc>
     869    </const>
     870    <const name="LargePages"          value="5">
     871      <desc>
     872        Whether large page allocation is enabled; requires nested paging and a 64 bits host.
    868873      </desc>
    869874    </const>
  • trunk/src/VBox/Main/include/MachineImpl.h

    r26459 r27166  
    275275        BOOL                 mHWVirtExExclusive;
    276276        BOOL                 mHWVirtExNestedPagingEnabled;
     277        BOOL                 mHWVirtExLargePagesEnabled;
    277278        BOOL                 mHWVirtExVPIDEnabled;
    278279        BOOL                 mAccelerate2DVideoEnabled;
  • trunk/src/VBox/Main/xml/Settings.cpp

    r26713 r27166  
    14611461          fHardwareVirtExclusive(HWVIRTEXCLUSIVEDEFAULT),
    14621462          fNestedPaging(true),
     1463          fLargePages(false),
    14631464          fVPID(true),
    14641465          fSyntheticCpu(false),
     
    15051506                  && (fHardwareVirtExclusive    == h.fHardwareVirtExclusive)
    15061507                  && (fNestedPaging             == h.fNestedPaging)
     1508                  && (fLargePages               == h.fLargePages)
    15071509                  && (fVPID                     == h.fVPID)
    15081510                  && (fSyntheticCpu             == h.fSyntheticCpu)
     
    20122014            if ((pelmCPUChild = pelmHwChild->findChildElement("HardwareVirtExNestedPaging")))
    20132015                pelmCPUChild->getAttributeValue("enabled", hw.fNestedPaging);
     2016            if ((pelmCPUChild = pelmHwChild->findChildElement("HardwareVirtExLargePages")))
     2017                pelmCPUChild->getAttributeValue("enabled", hw.fLargePages);
    20142018            if ((pelmCPUChild = pelmHwChild->findChildElement("HardwareVirtExVPID")))
    20152019                pelmCPUChild->getAttributeValue("enabled", hw.fVPID);
     
    29092913    if (m->sv >= SettingsVersion_v1_10)
    29102914    {
     2915        pelmCPU->createChild("HardwareVirtExLargePages")->setAttribute("enabled", hw.fLargePages);
    29112916        pelmCPU->setAttribute("hotplug", hw.fCpuHotPlug);
    29122917
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