VirtualBox

Changeset 47988 in vbox


Ignore:
Timestamp:
Aug 22, 2013 1:01:54 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
88312
Message:

Solaris reads MSR_RAPL_POWER_UNIT, give it some fake values.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/com/defs.h

    r45125 r47988  
    9797 *      0x800706be - RPC_S_CALL_FAILED.         Killed after call was made.
    9898 *      0x800706bf - RPC_S_CALL_FAILED_DNE.     Not observed, but should be matter of timing.
     99 *      0x80010108 - RPC_E_DISCONNECTED.        Observed deregistering
     100 *                                              python event listener.
    99101 */
    100102#define FAILED_DEAD_INTERFACE(rc) \
     
    102104     || (rc) == HRESULT_FROM_WIN32(RPC_S_CALL_FAILED) \
    103105     || (rc) == HRESULT_FROM_WIN32(RPC_S_CALL_FAILED_DNE) \
     106     || (rc) == RPC_E_DISCONNECTED \
    104107    )
    105108
  • trunk/include/iprt/x86.h

    r47942 r47988  
    10931093/** DS Save Area (R/W). */
    10941094#define MSR_IA32_DS_AREA                    0x600
     1095/** Running Average Power Limit (RAPL) power units. */
     1096#define MSR_RAPL_POWER_UNIT                 0x606
    10951097/** X2APIC MSR ranges. */
    10961098#define MSR_IA32_X2APIC_START               0x800
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r47942 r47988  
    11031103        case MSR_IA32_MC0_CTL:
    11041104        case MSR_IA32_MC0_STATUS:
     1105        case MSR_RAPL_POWER_UNIT:
    11051106            *puValue = 0;
    11061107            if (CPUMGetGuestCpuVendor(pVCpu->CTX_SUFF(pVM)) != CPUMCPUVENDOR_INTEL)
     
    11081109                Log(("MSR %#x is Intel, the virtual CPU isn't an Intel one -> #GP\n", idMsr));
    11091110                rc = VERR_CPUM_RAISE_GP_0;
     1111                break;
     1112            }
     1113
     1114            /* Provide more plausive values for some of them. */
     1115            switch (idMsr)
     1116            {
     1117                case MSR_RAPL_POWER_UNIT:
     1118                    *puValue = RT_MAKE_U32_FROM_U8(3 /* power units (1/8 W)*/,
     1119                                                   16 /* 15.3 micro-Joules */,
     1120                                                   10 /* 976 microseconds increments */,
     1121                                                   0);
     1122                    break;
    11101123            }
    11111124            break;
  • trunk/src/VBox/VMM/VMMAll/IEMAllCImpl.cpp.h

    r47821 r47988  
    46684668    if (rc != VINF_SUCCESS)
    46694669    {
     4670#ifdef IN_RING3
     4671        static uint32_t s_cTimes = 0;
     4672        if (s_cTimes++ < 10)
     4673            LogRel(("IEM: rdmsr(%#x) -> GP(0)\n", pCtx->ecx));
     4674#endif
    46704675        Log(("IEM: rdmsr(%#x) -> GP(0)\n", pCtx->ecx));
    46714676        AssertMsgReturn(rc == VERR_CPUM_RAISE_GP_0, ("%Rrc\n", rc), VERR_IPE_UNEXPECTED_STATUS);
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