VirtualBox

Changeset 93615 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Feb 6, 2022 7:35:04 AM (3 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
149760
Message:

VMM/DBGR3Trace: Replaced MMR3HyperAllocOnceNoRel call with direct SUPR3PageAllocEx call. bugref:10093

File:
1 edited

Legend:

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

    r93554 r93615  
    115115     *       as the heap block.
    116116     */
    117     cbBlock = RT_ALIGN_Z(cbBlock, GUEST_PAGE_SIZE); /** @todo page size */
    118     void *pvBlock;
    119     rc = MMR3HyperAllocOnceNoRel(pVM, cbBlock, GUEST_PAGE_SIZE, MM_TAG_DBGF, &pvBlock);
     117    cbBlock = RT_ALIGN_Z(cbBlock, HOST_PAGE_SIZE);
     118    RTR0PTR pvBlockR0 = NIL_RTR0PTR;
     119    void   *pvBlockR3 = NULL;
     120    rc = SUPR3PageAllocEx(cbBlock >> HOST_PAGE_SHIFT, 0, &pvBlockR3, &pvBlockR0, NULL);
    120121    if (RT_FAILURE(rc))
    121122        return rc;
    122123
    123     rc = RTTraceBufCarve(&hTraceBuf, cEntries, cbEntry, 0 /*fFlags*/, pvBlock, &cbBlock);
     124    rc = RTTraceBufCarve(&hTraceBuf, cEntries, cbEntry, 0 /*fFlags*/, pvBlockR3, &cbBlock);
    124125    AssertRCReturn(rc, rc);
    125     AssertRelease(hTraceBuf == (RTTRACEBUF)pvBlock);
    126     AssertRelease((void *)hTraceBuf == pvBlock);
     126    AssertReleaseReturn(hTraceBuf == (RTTRACEBUF)pvBlockR3, VERR_INTERNAL_ERROR_3);
     127    AssertReleaseReturn((void *)hTraceBuf == pvBlockR3, VERR_INTERNAL_ERROR_3);
    127128
    128129    pVM->hTraceBufR3 = hTraceBuf;
    129     pVM->hTraceBufR0 = MMHyperCCToR0(pVM, hTraceBuf);
     130    pVM->hTraceBufR0 = pvBlockR0;
    130131    return VINF_SUCCESS;
    131132}
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