VirtualBox

Ignore:
Timestamp:
Aug 14, 2020 12:59:51 PM (4 years ago)
Author:
vboxsync
Message:

Main: bugref:9618 Added Main/API support for AMD-V Virtualized VMSAVE/VMLOAD hardware virtualization feature.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/HostImpl.cpp

    r85683 r85769  
    217217                            fUnrestrictedGuestSupported,
    218218                            fNestedHWVirtSupported,
     219                            fVirtVmsaveVmload,
    219220                            fRecheckVTSupported;
    220221
     
    311312    m->fUnrestrictedGuestSupported = false;
    312313    m->fNestedHWVirtSupported = false;
     314    m->fVirtVmsaveVmload = false;
    313315    m->fRecheckVTSupported = false;
    314316
     
    375377                        if (fSVMFeaturesEdx & X86_CPUID_SVM_FEATURE_EDX_NESTED_PAGING)
    376378                            m->fNestedPagingSupported = true;
     379                        if (fSVMFeaturesEdx & X86_CPUID_SVM_FEATURE_EDX_VIRT_VMSAVE_VMLOAD)
     380                            m->fVirtVmsaveVmload = true;
    377381                    }
    378382                }
     
    11491153
    11501154/**
    1151  * Updates fVTSupported, fNestedPagingSupported, fUnrestrictedGuestSupported and
    1152  * fNestedHWVirtSupported with info from SUPR3QueryVTCaps().
     1155 * Updates fVTSupported, fNestedPagingSupported, fUnrestrictedGuestSupported,
     1156 * fVirtVmsaveVmload and fNestedHWVirtSupported with info from SUPR3QueryVTCaps().
    11531157 *
    11541158 * This is repeated till we successfully open the support driver, in case it
     
    11821186                                          ==            (  SUPVTCAPS_VT_X | SUPVTCAPS_NESTED_PAGING
    11831187                                                         | SUPVTCAPS_VTX_UNRESTRICTED_GUEST | SUPVTCAPS_VTX_VMCS_SHADOWING);
     1188        m->fVirtVmsaveVmload           = (fVTCaps & SUPVTCAPS_AMDV_VIRT_VMSAVE_VMLOAD) != 0;
    11841189        m->fRecheckVTSupported = false; /* No need to try again, we cached everything. */
    11851190    }
     
    12041209        case ProcessorFeature_UnrestrictedGuest:
    12051210        case ProcessorFeature_NestedHWVirt:
     1211        case ProcessorFeature_VirtVmsaveVmload:
    12061212            break;
    12071213        default:
     
    12201226                || aFeature == ProcessorFeature_NestedPaging
    12211227                || aFeature == ProcessorFeature_UnrestrictedGuest
    1222                 || aFeature == ProcessorFeature_NestedHWVirt)
     1228                || aFeature == ProcessorFeature_NestedHWVirt
     1229                || aFeature == ProcessorFeature_VirtVmsaveVmload)
    12231230           )
    12241231        {
     
    12521259            case ProcessorFeature_NestedHWVirt:
    12531260                *aSupported = m->fNestedHWVirtSupported;
     1261                break;
     1262
     1263            case ProcessorFeature_VirtVmsaveVmload:
     1264                *aSupported = m->fVirtVmsaveVmload;
    12541265                break;
    12551266
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