VirtualBox

Changeset 62115 in vbox


Ignore:
Timestamp:
Jul 7, 2016 4:13:01 PM (8 years ago)
Author:
vboxsync
Message:

SVM: Workaround for NMI/task switch trouble on old AMDs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMSVMR0.cpp

    r62108 r62115  
    30103010    else if (!pVCpu->hm.s.Event.fPending)
    30113011        hmR0SvmEvaluatePendingEvent(pVCpu, pCtx);
     3012
     3013    /* On the oldest AMD-V systems, we may not get enough information to reinject an NMI.
     3014     * Just do it in software. See @bugref{8411}
     3015     * NB: If we could continue a task switch exit we wouldn't need to do this.
     3016     */
     3017    if (RT_UNLIKELY(pVCpu->hm.s.Event.fPending && (((pVCpu->hm.s.Event.u64IntInfo >> 8) & 7) == SVM_EVENT_NMI)))
     3018        if (RT_UNLIKELY(!pVM->hm.s.svm.u32Features))
     3019            return VINF_EM_RAW_INJECT_TRPM_EVENT;
    30123020
    30133021#ifdef HMSVM_SYNC_FULL_GUEST_STATE
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