VirtualBox

Changeset 70712 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Jan 23, 2018 4:18:22 PM (7 years ago)
Author:
vboxsync
Message:

Main,VBoxManage: Added CPUPropertyType_HWVirt. Translates to --nested-hw-virt in VBoxManage/modifyvm

Location:
trunk/src/VBox/Main
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r70606 r70712  
    579579    </const>
    580580    <const name="v1_17" value="19">
    581       <desc>Settings version "1.17", written by VirtualBox 5.2.x.</desc>
     581      <desc>Settings version "1.17", written by VirtualBox 6.0.x.</desc>
    582582      <!--
    583           So far absolutely no change to v1_16.
     583          Machine changes: nested hardware virtualization.
    584584      -->
    585585    </const>
     
    962962  <enum
    963963    name="CPUPropertyType"
    964     uuid="cc6ecdad-a07c-4e81-9c0e-d767e0678d5a"
     964    uuid="3fcfe589-ca66-468f-e313-656f9d0b2eb6"
    965965    >
    966966    <desc>
     
    10181018        causing many VM exits, so it is only recommended for situation where there
    10191019        real need to be paranoid.
     1020      </desc>
     1021    </const>
     1022    <const name="HWVirt"                value="8">
     1023      <desc>
     1024        Enabled the hardware virtualization (AMD-V/VT-x) feature on the guest CPU.
     1025        This requires hardware virtualization on the host CPU.
    10201026      </desc>
    10211027    </const>
  • trunk/src/VBox/Main/include/MachineImpl.h

    r70606 r70712  
    290290        BOOL                mIBPBOnVMExit;
    291291        BOOL                mIBPBOnVMEntry;
     292        BOOL                mNestedHWVirt;
    292293        ULONG               mCPUCount;
    293294        BOOL                mCPUHotPlugEnabled;
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r70644 r70712  
    10211021            LogRel(("Limiting the firmware APIC level from APIC to Disabled\n"));
    10221022        }
     1023
     1024        /* Nested VT-x / AMD-V. */
     1025        BOOL fNestedHWVirt = FALSE;
     1026        hrc = pMachine->GetCPUProperty(CPUPropertyType_HWVirt, &fNestedHWVirt);      H();
     1027        InsertConfigInteger(pCPUM, "NestedHWVirt", fNestedHWVirt ? true : false);
    10231028
    10241029        /*
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r70650 r70712  
    198198    mIBPBOnVMExit = false;
    199199    mIBPBOnVMEntry = false;
     200    mNestedHWVirt = false;
    200201    mHPETEnabled = false;
    201202    mCpuExecutionCap = 100; /* Maximum CPU execution cap by default. */
     
    22662267            break;
    22672268
     2269        case CPUPropertyType_HWVirt:
     2270            *aValue = mHWData->mNestedHWVirt;
     2271            break;
     2272
    22682273        default:
    22692274            return E_INVALIDARG;
     
    23252330            mHWData.backup();
    23262331            mHWData->mIBPBOnVMEntry = !!aValue;
     2332            break;
     2333
     2334        case CPUPropertyType_HWVirt:
     2335            i_setModified(IsModified_MachineData);
     2336            mHWData.backup();
     2337            mHWData->mNestedHWVirt = !!aValue;
    23272338            break;
    23282339
     
    90129023        mHWData->mIBPBOnVMExit                = data.fIBPBOnVMExit;
    90139024        mHWData->mIBPBOnVMEntry               = data.fIBPBOnVMEntry;
     9025        mHWData->mNestedHWVirt                = data.fNestedHWVirt;
    90149026        mHWData->mCPUCount                    = data.cCPUs;
    90159027        mHWData->mCPUHotPlugEnabled           = data.fCpuHotPlug;
     
    1033710349        data.fIBPBOnVMExit          = !!mHWData->mIBPBOnVMExit;
    1033810350        data.fIBPBOnVMEntry         = !!mHWData->mIBPBOnVMEntry;
     10351        data.fNestedHWVirt          = !!mHWData->mNestedHWVirt;
    1033910352        data.cCPUs                  = mHWData->mCPUCount;
    1034010353        data.fCpuHotPlug            = !!mHWData->mCPUHotPlugEnabled;
  • trunk/src/VBox/Main/xml/Settings.cpp

    r70606 r70712  
    27802780    fIBPBOnVMExit(false),
    27812781    fIBPBOnVMEntry(false),
     2782    fNestedHWVirt(false),
    27822783    enmLongMode(HC_ARCH_BITS == 64 ? Hardware::LongMode_Enabled : Hardware::LongMode_Disabled),
    27832784    cCPUs(1),
     
    29352936            && fIBPBOnVMExit             == h.fIBPBOnVMExit
    29362937            && fIBPBOnVMEntry            == h.fIBPBOnVMEntry
     2938            && fNestedHWVirt             == h.fNestedHWVirt
    29372939            && cCPUs                     == h.cCPUs
    29382940            && fCpuHotPlug               == h.fCpuHotPlug
     
    39433945                pelmCPUChild->getAttributeValue("vmentry", hw.fIBPBOnVMEntry);
    39443946            }
     3947            pelmCPUChild = pelmHwChild->findChildElement("NestedHWVirt");
     3948            if (pelmCPUChild)
     3949                pelmCPUChild->getAttributeValue("enabled", hw.fNestedHWVirt);
    39453950
    39463951            if ((pelmCPUChild = pelmHwChild->findChildElement("CpuIdTree")))
     
    52785283        }
    52795284    }
     5285    if (m->sv >= SettingsVersion_v1_17 && hw.fNestedHWVirt)
     5286        pelmCPU->createChild("NestedHWVirt")->setAttribute("enabled", hw.fNestedHWVirt);
     5287
    52805288    if (m->sv >= SettingsVersion_v1_14 && hw.enmLongMode != Hardware::LongMode_Legacy)
    52815289    {
     
    69396947void MachineConfigFile::bumpSettingsVersionIfNeeded()
    69406948{
     6949    if (m->sv < SettingsVersion_v1_17)
     6950    {
     6951        // VirtualBox 6.0 adds nested hardware virtualization.
     6952        if (hardwareMachine.fNestedHWVirt)
     6953        {
     6954            m->sv = SettingsVersion_v1_17;
     6955            return;
     6956        }
     6957    }
     6958
    69416959    if (m->sv < SettingsVersion_v1_16)
    69426960    {
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