VirtualBox

Changeset 49147 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Oct 16, 2013 9:35:14 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
90007
Message:

tstVMM/msr: Formatting bug on 32-bit hosts, a cast got lost in a revision of the code. :/ Run the test with interrupts enabled and query 4/16 times more MSRs in one go.

Location:
trunk/src/VBox/VMM
Files:
3 edited

Legend:

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

    r48226 r49147  
    19491949                      );
    19501950
     1951#if 0
    19511952    memset(pVCpu->vmm.s.pbEMTStackR3, 0xaa, VMM_STACK_SIZE); /* Clear the stack. */
     1953#endif
    19521954    PRTGCUINTPTR32 pFrame = (PRTGCUINTPTR32)(pVCpu->vmm.s.pbEMTStackR3 + VMM_STACK_SIZE) - cArgs;
    19531955    int i = cArgs;
  • trunk/src/VBox/VMM/VMMR3/VMMTests.cpp

    r49144 r49147  
    679679             * The MSRs.
    680680             */
    681 #ifdef RT_OS_WINDOWS /* Paranoia: Avoid DPC and other watchdogs. */
    682             uint32_t const      cMsrsPerCall = 1024;
    683 #else
    684             uint32_t const      cMsrsPerCall = 4096;
    685 #endif
     681            uint32_t const      cMsrsPerCall = 16384;
    686682            uint32_t            cbResults = cMsrsPerCall * sizeof(VMMTESTMSRENTRY);
    687683            PVMMTESTMSRENTRY    paResults;
     
    704700                    }
    705701
    706                     RT_BZERO(paResults, cbResults);
     702                    /*RT_BZERO(paResults, cbResults);*/
    707703                    rc = VMMR3CallRC(pVM, RCPtrEP, 4, pVM->pVMRC, uCurMsr, cMsrsPerCall, RCPtrResults);
    708704                    if (RT_FAILURE(rc))
     
    715711                        if (paResults[i].uMsr != UINT64_MAX)
    716712                        {
    717                             RTStrmPrintf(pOutStrm, "%#010x = %#llx\n", paResults[i].uMsr, paResults[i].uValue);
    718                             RTPrintf("%#010x = %#llx\n", paResults[i].uMsr, paResults[i].uValue);
     713                            if (paResults[i].uValue == 0)
     714                            {
     715                                RTStrmPrintf(pOutStrm, "%#010llx = 0\n", paResults[i].uMsr);
     716                                RTPrintf("%#010llx = 0\n", paResults[i].uMsr);
     717                            }
     718                            else
     719                            {
     720                                RTStrmPrintf(pOutStrm, "%#010llx = %#x`%08x\n", paResults[i].uMsr,
     721                                             (uint32_t)(paResults[i].uValue >> 32), (uint32_t)paResults[i].uValue);
     722                                RTPrintf("%#010llx = %#010x`%08x\n", paResults[i].uMsr,
     723                                         (uint32_t)(paResults[i].uValue >> 32), (uint32_t)paResults[i].uValue);
     724                            }
    719725                            cMsrsFound++;
    720726                            uLastMsr = paResults[i].uMsr;
  • trunk/src/VBox/VMM/VMMRC/VMMRC.cpp

    r49141 r49147  
    361361VMMRCTestReadMsrs(PVM pVM, uint32_t uMsr, uint32_t cMsrs, PVMMTESTMSRENTRY paResults)
    362362{
    363     AssertReturn(cMsrs <= 4096, VERR_INVALID_PARAMETER);
     363    AssertReturn(cMsrs <= 16384, VERR_INVALID_PARAMETER);
    364364    AssertPtrReturn(paResults, VERR_INVALID_POINTER);
     365    ASMIntEnable(); /* Run with interrupts enabled, so we can query more MSRs in one block. */
    365366
    366367    for (uint32_t i = 0; i < cMsrs; i++, uMsr++)
     
    371372            paResults[i].uMsr = UINT64_MAX;
    372373    }
     374
     375    ASMIntDisable();
    373376    return VINF_SUCCESS;
    374377}
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