VirtualBox

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


Ignore:
Timestamp:
Aug 25, 2021 12:37:59 AM (3 years ago)
Author:
vboxsync
Message:

IPRT,SUPDrv,VMM,++: Bumped major support driver version. Added RTLogSetR0ProgramStart and make the VMM use it when configuring the ring-0 loggers. Removed pfnFlush from the parameter list of RTLogCreateEx[V]. bugref:10086

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

Legend:

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

    r90859 r90862  
    392392 */
    393393static int vmmR0InitLoggerOne(PGVMCPU pGVCpu, bool fRelease, PVMMR0PERVCPULOGGER pR0Log, PVMMR3CPULOGGER pShared,
    394                               uint32_t cbBuf, char *pchBuf, RTR3PTR pchBufR3)
     394                              uint32_t cbBuf, char *pchBuf, RTR3PTR pchBufR3, uint64_t nsProgramStart)
    395395{
    396396    pR0Log->BufDesc.u32Magic    = RTLOGBUFFERDESC_MAGIC;
     
    412412    int rc = RTLogCreateEx(&pR0Log->pLogger, fRelease ? "VBOX_RELEASE_LOG" : "VBOX_LOG", RTLOG_F_NO_LOCKING | RTLOGFLAGS_BUFFERED,
    413413                           "all", RT_ELEMENTS(s_apszGroups), s_apszGroups, UINT32_MAX,
    414                            fRelease ? vmmR0LogRelFlush : vmmR0LogFlush, 1 /*cBufDescs*/, &pR0Log->BufDesc,
    415                            RTLOGDEST_DUMMY,
     414                           1 /*cBufDescs*/, &pR0Log->BufDesc, RTLOGDEST_DUMMY,
    416415                           NULL /*pfnPhase*/, 0 /*cHistory*/, 0 /*cbHistoryFileMax*/, 0 /*cSecsHistoryTimeSlot*/,
    417416                           NULL /*pErrInfo*/, NULL /*pszFilenameFmt*/);
     
    423422        pLogger->u64UserValue3 = (uintptr_t)pGVCpu;
    424423
    425         RTLogSetR0ThreadNameF(pLogger, "EMT-%u-R0", pGVCpu->idCpu);
    426     }
    427     else
    428         pR0Log->pLogger = NULL;
     424        rc = RTLogSetFlushCallback(pLogger, fRelease ? vmmR0LogRelFlush : vmmR0LogFlush);
     425        if (RT_SUCCESS(rc))
     426        {
     427            RTLogSetR0ThreadNameF(pLogger, "EMT-%u-R0", pGVCpu->idCpu);
     428            RTLogSetR0ProgramStart(pLogger, nsProgramStart);
     429            return VINF_SUCCESS;
     430        }
     431
     432        RTLogDestroy(pLogger);
     433    }
     434    pR0Log->pLogger = NULL;
    429435    return rc;
    430436}
     
    455461                PVMMR0PERVCPULOGGER pR0Log  = fRelease ? &pGVCpu->vmmr0.s.RelLogger : &pGVCpu->vmmr0.s.Logger;
    456462                PVMMR3CPULOGGER     pShared = fRelease ? &pGVCpu->vmm.s.RelLogger   : &pGVCpu->vmm.s.Logger;
    457                 rc = vmmR0InitLoggerOne(pGVCpu, fRelease, pR0Log, pShared, cbBuf, pchBuf + i * cbBuf, pchBufR3 + i * cbBuf);
     463                rc = vmmR0InitLoggerOne(pGVCpu, fRelease, pR0Log, pShared, cbBuf, pchBuf + i * cbBuf, pchBufR3 + i * cbBuf,
     464                                        pGVM->vmm.s.nsProgramStart);
    458465                if (RT_FAILURE(rc))
    459466                {
  • trunk/src/VBox/VMM/VMMR3/VMM.cpp

    r90840 r90862  
    207207    pVM->vmm.s.hEvtRendezvousRecursionPushCaller = NIL_RTSEMEVENT;
    208208    pVM->vmm.s.hEvtRendezvousRecursionPopCaller = NIL_RTSEMEVENT;
     209    pVM->vmm.s.nsProgramStart                   = RTTimeProgramStartNanoTS();
    209210
    210211#if 0 /* pointless when timers doesn't run on EMT */
  • trunk/src/VBox/VMM/include/VMMInternal.h

    r90836 r90862  
    285285    /** Buffer for storing the custom message for a ring-0 assertion. */
    286286    char                        szRing0AssertMsg2[256];
     287
     288    /** Used when setting up ring-0 logger. */
     289    uint64_t                    nsProgramStart;
    287290
    288291    /** Number of VMMR0_DO_HM_RUN or VMMR0_DO_NEM_RUN calls. */
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