VirtualBox

Changeset 61744 in vbox


Ignore:
Timestamp:
Jun 17, 2016 1:35:12 PM (9 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
108130
Message:

VMM/APIC: Reserve the full MSR range defined by the architecture rather than just the valid ones
to the APIC device. Shouldn't change behaviour as we'll still be #GP'ing just from the APIC now
rather than as an unhandled MSR in IEM.

File:
1 edited

Legend:

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

    r61741 r61744  
    6161*********************************************************************************************************************************/
    6262/**
    63  * Array of MSR ranges supported by the x2APIC.
    64  */
    65 static CPUMMSRRANGE const g_aMsrRanges_x2Apic[] =
    66 {
    67     X2APIC_MSRRANGE(MSR_IA32_X2APIC_ID,        MSR_IA32_X2APIC_VERSION,   "x2APIC range 0"),
    68     X2APIC_MSRRANGE(MSR_IA32_X2APIC_VERSION,   MSR_IA32_X2APIC_TPR,       "x2APIC range 1"),
    69     X2APIC_MSRRANGE(MSR_IA32_X2APIC_TPR,       MSR_IA32_X2APIC_TPR,       "x2APIC range 2"),
    70     X2APIC_MSRRANGE(MSR_IA32_X2APIC_PPR,       MSR_IA32_X2APIC_EOI,       "x2APIC range 3"),
    71     X2APIC_MSRRANGE(MSR_IA32_X2APIC_LDR,       MSR_IA32_X2APIC_LDR,       "x2APIC range 4"),
    72     X2APIC_MSRRANGE(MSR_IA32_X2APIC_SVR,       MSR_IA32_X2APIC_SVR,       "x2APIC range 5"),
    73     X2APIC_MSRRANGE(MSR_IA32_X2APIC_ISR0,      MSR_IA32_X2APIC_ISR7,      "x2APIC range 7"),
    74     X2APIC_MSRRANGE(MSR_IA32_X2APIC_TMR0,      MSR_IA32_X2APIC_TMR7,      "x2APIC range 8"),
    75     X2APIC_MSRRANGE(MSR_IA32_X2APIC_IRR0,      MSR_IA32_X2APIC_IRR7,      "x2APIC range 8"),
    76     X2APIC_MSRRANGE(MSR_IA32_X2APIC_ESR,       MSR_IA32_X2APIC_ESR,       "x2APIC range 9"),
    77     X2APIC_MSRRANGE(MSR_IA32_X2APIC_LVT_CMCI,  MSR_IA32_X2APIC_ICR,       "x2APIC range 10"),
    78     X2APIC_MSRRANGE(MSR_IA32_X2APIC_LVT_TIMER, MSR_IA32_X2APIC_TIMER_CCR, "x2APIC range 11"),
    79     X2APIC_MSRRANGE(MSR_IA32_X2APIC_TIMER_DCR, MSR_IA32_X2APIC_SELF_IPI,  "x2APIC range 12")
    80 };
     63 * MSR range supported by the x2APIC.
     64 * See Intel spec. 10.12.2 "x2APIC Register Availability".
     65 */
     66static CPUMMSRRANGE const g_MsrRange_x2Apic = X2APIC_MSRRANGE(MSR_IA32_X2APIC_START, MSR_IA32_X2APIC_END, "x2APIC range");
    8167#undef X2APIC_MSRRANGE
    8268
     
    16881674            CPUMSetGuestCpuIdFeature(pVM, CPUMCPUIDFEATURE_X2APIC);
    16891675
    1690             /* Insert all MSR ranges of the x2APIC. */
    1691             for (size_t i = 0; i < RT_ELEMENTS(g_aMsrRanges_x2Apic); i++)
    1692             {
    1693                 rc = CPUMR3MsrRangesInsert(pVM, &g_aMsrRanges_x2Apic[i]);
    1694                 AssertLogRelRCReturn(rc, rc);
    1695             }
     1676            /* Insert the MSR range of the x2APIC. */
     1677            rc = CPUMR3MsrRangesInsert(pVM, &g_MsrRange_x2Apic);
     1678            AssertLogRelRCReturn(rc, rc);
    16961679            break;
    16971680        }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette