VirtualBox

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


Ignore:
Timestamp:
Sep 26, 2013 12:20:56 AM (11 years ago)
Author:
vboxsync
Message:

CPUM: MSR_CORE_THREAD_COUNT and MSR_FLEX_RATIO for snow leopard.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp

    r48602 r48695  
    10441044
    10451045        case MSR_IA32_PERF_STATUS:
    1046             /** @todo could really be not exactly correct, maybe use host's values */
     1046            /** @todo could really be not exactly correct, maybe use host's values
     1047             * Apple code indicates that we should use CPU Hz / 1.333MHz here. */
     1048            /** @todo Where are the specs implemented here found? */
    10471049            *puValue = UINT64_C(1000)                 /* TSC increment by tick */
    10481050                     | ((uint64_t)u8Multiplier << 24) /* CPU multiplier (aka bus ratio) min */
     
    10631065
    10641066        case MSR_IA32_PLATFORM_INFO:
    1065             *puValue = (u8Multiplier << 8)            /* Flex ratio max */
     1067            *puValue = ((uint32_t)u8Multiplier << 8)  /* Flex ratio max */
    10661068                     | ((uint64_t)u8Multiplier << 40) /* Flex ratio min */;
    10671069            break;
     
    11421144        case MSR_RAPL_POWER_UNIT:
    11431145        case MSR_BBL_CR_CTL3:               /* ca. core arch? */
    1144         case MSR_PKG_CST_CONFIG_CONTROL:   /* Nahalem, Sandy Bridge */
     1146        case MSR_PKG_CST_CONFIG_CONTROL:    /* Nahalem, Sandy Bridge */
     1147        case MSR_CORE_THREAD_COUNT:         /* Apple queries this. */
     1148        case MSR_FLEX_RATIO:                /* Apple queries this. */
    11451149            *puValue = 0;
    11461150            if (CPUMGetGuestCpuVendor(pVCpu->CTX_SUFF(pVM)) != CPUMCPUVENDOR_INTEL)
     
    11691173                    *puValue = pVCpu->cpum.s.GuestMsrs.msr.PkgCStateCfgCtrl;
    11701174                    break;
     1175                case MSR_CORE_THREAD_COUNT:
     1176                {
     1177                    /** @todo restrict this to nehalem.  */
     1178                    PVM pVM = pVCpu->CTX_SUFF(pVM); /* Note! Not sweating the 4-bit core count limit on westmere. */
     1179                    *puValue = pVM->cCpus & 0xffff | ((pVM->cCpus & 0xffff) << 16);
     1180                    break;
     1181                }
     1182
     1183                case MSR_FLEX_RATIO:
     1184                {
     1185                    /** @todo Check for P4, it's different there. Try find accurate specs. */
     1186                    *puValue = (uint32_t)u8Multiplier << 8;
     1187                    break;
     1188                }
    11711189            }
    11721190            break;
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