Lines Matching refs:GMM
3 * GMM - Global Memory Manager.
19 /** @page pg_gmm GMM - The Global Memory Manager
22 * management. Currently only guest RAM is allocated from the GMM, but this
181 * Use a critical section instead of a fast mutex for the giant GMM lock.
197 * The per-page tracking structure employed by the GMM.
326 * @param pPage The GMM page.
337 * @param pPage The GMM page.
344 * @param pPage The GMM page.
372 * A GMM allocation chunk ring-3 mapping record.
385 /** Pointer to a GMM allocation chunk mapping. */
390 * A GMM allocation chunk.
409 /** List node in the chunk list (GMM::ChunkList). (Giant mtx.) */
484 * The GMM instance data.
486 typedef struct GMM
493 /** The critical section protecting the GMM.
497 /** The fast mutex protecting the GMM.
524 * @gcfgm 64-bit GMM/MaxPages Direct.
525 * @gcfgm 32-bit GMM/PctPages Relative to the number of host pages. */
580 } GMM;
581 /** Pointer to the GMM instance. */
582 typedef GMM *PGMM;
584 /** The value of GMM::u32Magic (Katsuhiro Otomo). */
589 * GMM chunk mutex state.
617 /** The maximum number of shared modules GMM is allowed to track. */
654 /** Pointer to the GMM instance data. */
689 * Checks the sanity of the GMM instance data before making changes.
703 * Checks the sanity of the GMM instance data after making changes.
717 * Checks the sanity of the GMM instance in the allocation loops.
756 * Initializes the GMM component.
857 * Terminates the GMM component.
910 * @param pvGMM The GMM handle.
939 * Initializes the per-VM data for the GMM.
959 * Acquires the GMM giant lock.
962 * @param pGMM Pointer to the GMM instance.
982 * Releases the GMM giant lock.
985 * @param pGMM Pointer to the GMM instance.
1003 * Yields the GMM giant lock if there is contention and a certain minimum time
1007 * @param pGMM Pointer to the GMM instance.
1066 * @param pGMM Pointer to the GMM instance.
1116 /** @todo GMM life cycle cleanup (we may race someone
1117 * destroying and cleaning up GMM)? */
1131 * Releases the GMM giant lock.
1134 * @param pGMM Pointer to the GMM instance.
1183 * Drops the giant GMM lock we kept in gmmR0ChunkMutexAcquire while keeping the
1198 /** @todo GMM life cycle cleanup (we may race someone
1199 * destroying and cleaning up GMM)? */
1375 /** @todo Update GMM->cOverCommittedPages */
1399 * @param pGMM Pointer to the GMM instance.
1736 * @param pGMM Pointer to the GMM instance.
1761 SUPR0Printf("GMM insanity: found %#x pages in the %s set, expected %#x. (%s, line %u)\n",
1771 * Performs some sanity checks on the GMM while owning lock.
1775 * @param pGMM Pointer to the GMM instance.
1798 * @param pGMM Pointer to the GMM instance.
1818 * @param pGMM Pointer to the GMM instance.
1840 * @param pGMM Pointer to the GMM instance.
1856 * @param pGMM Pointer to the GMM instance.
1971 * @param pGMM Pointer to the GMM instance.
1986 * @param pGMM Pointer to the GMM instance.
2081 * @param pGMM Pointer to the GMM instance data.
2107 * @returns VBox status code. On success, the giant GMM lock will be held, the
2109 * @param pGMM Pointer to the GMM instance.
2117 * @remarks The caller must not own the giant GMM mutex.
2118 * The giant GMM mutex will be acquired and returned acquired in
2198 * @param pGMM Pointer to the GMM instance data.
2352 * @param pGMM Pointer to the GMM instance data.
2493 * @param pGMM Pointer to the GMM instance data.
2500 * @remarks Call takes the giant GMM lock.
3061 * Note! We leave the giant GMM lock temporarily as the allocation might
3210 * @param pGMM Pointer to the GMM instance.
3305 * @param pGMM Pointer to the GMM instance data.
3365 * @param pGMM Pointer to the GMM instance.
3390 * @param pGMM Pointer to the GMM instance.
3415 * @param pGMM Pointer to the GMM instance data.
3625 * The request may or may not have been initiated by the GMM. If it was initiated
3626 * by the GMM it is important that this function is called even if no pages were
3876 * @param pGMM Pointer to the GMM instance data.
3920 * @param pGMM Pointer to the GMM instance data.
3929 * Lock the chunk and if possible leave the giant GMM lock.
3954 * @param pGMM Pointer to the GMM instance data.
4045 * @param pGMM Pointer to the GMM instance data.
4057 * Take the chunk lock and leave the giant GMM lock when possible, then
4079 * @param pGMM Pointer to the GMM instance.
4226 * will be locked down and used by the GMM when the GM asks for pages.
4256 * (The GMM locking is done inside gmmR0RegisterChunk.)
4282 * @param GMM The GMM instance data.
4317 * @param pGMM The GMM instance data.
4367 * @param pGMM The GMM instance data.
4424 * @param pGMM The GMM instance data.
4771 * @param pGMM Pointer to the GMM instance.
4791 * @param pGMM Pointer to the GMM instance.
4852 * - If a shared page is new, then it changes the GMM page type to shared and
4858 * @remarks ASSUMES the caller has acquired the GMM semaphore!!
4861 * @param pGMM Pointer to the GMM instance data.
5027 * This is called without taking the GMM lock so that it can be yielded as
5030 * @param pGMM The GMM handle.
5340 * Retrieves the GMM statistics visible to the caller.
5363 * Resolve the VM handle, if not NULL, and lock the GMM.
5381 * Copy out the GMM statistics.
5429 * Resets the specified GMM statistics.