VirtualBox

Changeset 63945 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Sep 22, 2016 12:01:10 PM (8 years ago)
Author:
vboxsync
Message:

VMM/APIC, VMM/GIM/HyperV: Fix MSR range insertion/removale ordering issue between APIC and GIM introduced in r110830.

Location:
trunk/src/VBox/VMM/VMMR3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/APIC.cpp

    r63944 r63945  
    17381738        rc = CPUMR3MsrRangesInsert(pVM, &g_MsrRange_x2Apic_Invalid);
    17391739        AssertLogRelRCReturn(rc, rc);
    1740         LogRel(("APIC: Removed x2APIC MSR range\n"));
    17411740    }
    17421741
  • trunk/src/VBox/VMM/VMMR3/GIMHv.cpp

    r63849 r63945  
    255255                       //| GIM_HV_BASE_FEAT_VP_RUNTIME_MSR
    256256                       | GIM_HV_BASE_FEAT_PART_TIME_REF_COUNT_MSR
    257                        //| GIM_HV_BASE_FEAT_BASIC_SYNIC_MSRS
    258                        //| GIM_HV_BASE_FEAT_STIMER_MSRS
     257                       //| GIM_HV_BASE_FEAT_BASIC_SYNIC_MSRS          // Required for synethetic timers
     258                       //| GIM_HV_BASE_FEAT_STIMER_MSRS               // Required for synethetic timers
    259259                       | GIM_HV_BASE_FEAT_APIC_ACCESS_MSRS
    260260                       | GIM_HV_BASE_FEAT_HYPERCALL_MSRS
     
    506506
    507507    /*
    508      * Inform APIC whether Hyper-V compatibility mode is enabled or not.
    509      */
    510     if (pHv->uHyperHints & GIM_HV_HINT_X2APIC_MSRS)
    511         APICR3HvSetCompatMode(pVM, true);
    512 
    513     /*
    514508     * Register statistics.
    515509     */
     
    564558    int rc = CPUMR3CpuIdInsert(pVM, &HyperLeaf);
    565559    AssertLogRelRCReturn(rc, rc);
     560
     561    /*
     562     * Inform APIC whether Hyper-V compatibility mode is enabled or not.
     563     * Do this here rather than on gimR3HvInit() as it gets called after APIC
     564     * has finished inserting/removing the x2APIC MSR range.
     565     */
     566    if (pHv->uHyperHints & GIM_HV_HINT_X2APIC_MSRS)
     567        APICR3HvSetCompatMode(pVM, true);
    566568
    567569    return rc;
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