VirtualBox

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


Ignore:
Timestamp:
Nov 12, 2021 9:47:48 AM (3 years ago)
Author:
vboxsync
Message:

VMM/PGM,GMM: Made pgmR0PhysAllocateHandyPages & GMMR0AllocateHandyPages callable from ring-0 HM context, eliminating the need for the call-ring-3 fun. bugref:10093

Location:
trunk/src/VBox/VMM/VMMR3
Files:
2 edited

Legend:

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

    r92390 r92391  
    58155815
    58165816/**
    5817  * Response to VM_FF_PGM_NEED_HANDY_PAGES and VMMCALLRING3_PGM_ALLOCATE_HANDY_PAGES.
     5817 * Response to VM_FF_PGM_NEED_HANDY_PAGES and helper for pgmPhysEnsureHandyPage.
    58185818 *
    58195819 * This function will also work the VM_FF_PGM_NO_MEMORY force action flag, to
    5820  * signal and clear the out of memory condition. When contracted, this API is
    5821  * used to try clear the condition when the user wants to resume.
     5820 * signal and clear the out of memory condition.  When called, this API is used
     5821 * to try clear the condition when the user wants to resume.
    58225822 *
    58235823 * @returns The following VBox status codes.
  • trunk/src/VBox/VMM/VMMR3/VMM.cpp

    r92368 r92391  
    430430    STAM_REG(pVM, &pVM->vmm.s.StatRZRetPatchTPR,            STAMTYPE_COUNTER, "/VMM/RZRet/PatchTPR",            STAMUNIT_OCCURENCES, "Number of VINF_EM_HM_PATCH_TPR_INSTR returns.");
    431431    STAM_REG(pVM, &pVM->vmm.s.StatRZRetCallRing3,           STAMTYPE_COUNTER, "/VMM/RZCallR3/Misc",             STAMUNIT_OCCURENCES, "Number of Other ring-3 calls.");
    432     STAM_REG(pVM, &pVM->vmm.s.StatRZCallPGMAllocHandy,      STAMTYPE_COUNTER, "/VMM/RZCallR3/PGMAllocHandy",    STAMUNIT_OCCURENCES, "Number of VMMCALLRING3_PGM_ALLOCATE_HANDY_PAGES calls.");
    433432
    434433    STAMR3Register(pVM, &pVM->vmm.s.StatLogFlusherFlushes,  STAMTYPE_COUNTER, STAMVISIBILITY_ALWAYS, "/VMM/LogFlush/00-Flushes",  STAMUNIT_OCCURENCES, "Total number of buffer flushes");
     
    25002499    {
    25012500        /*
    2502          * Allocates more handy pages.
    2503          */
    2504         case VMMCALLRING3_PGM_ALLOCATE_HANDY_PAGES:
    2505         {
    2506             pVCpu->vmm.s.rcCallRing3 = PGMR3PhysAllocateHandyPages(pVM);
    2507             break;
    2508         }
    2509 
    2510         /*
    25112501         * Signal a ring 0 hypervisor assertion.
    25122502         * Cancel the longjmp operation that's in progress.
     
    25312521            return VERR_VMM_UNKNOWN_RING3_CALL;
    25322522    }
    2533 
    2534     pVCpu->vmm.s.enmCallRing3Operation = VMMCALLRING3_INVALID;
    2535     return VINF_SUCCESS;
    25362523}
    25372524
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