Files
UnrealEngineUWP/Engine/Source/Runtime/Core/Private/HAL
ben woodhouse a93a546ab4 VeryLargePageAllocator page commit limits and general refactor/cleanup:
- Add cvars VeryLargePageAllocator.MaxCommittedPageCountDefault and VeryLargePageAllocator.MaxCommittedPageCountSmallPool to limit the number of large pages committed for each pool. Since VLPA very rarely releases pages, this avoids the situation where VLPA permanently holds too much memory, leaving less for other large allocations or rendering etc.

Cleanup/refactor:
- Strip out unused code paths and corresponding defines. UE_VERYLARGEPAGEALLOCATOR_TAKEONALL64KBALLOCATIONS, UE_USE_VERYLARGEPAGEALLOCATOR_FALLBACKPATH and LARGEPAGEALLOCATOR_SORT_OnAddress were always enabled.
- Add helper functions GetOrAllocLargePage and AllocNewLargePage to simplify allocation logic. This also avoids some duplication of code in preallocation and allocate()
- Strip the VeryLargePageAllocator prefix from various cvars and globals to improve readability (making sure they're all static scope)
- Rename the function IsPartOf to IsSmallBlockAllocation to be less misleading
- Replace the cvar VeryLargePageAllocator.LeavePageCachingEnabledWhenOOMHappened with VeryLargePageAllocator.DisablePageCachingOnOOM (which does the opposite) for clarity

#tests tested on a devkit before/after and compared VLPA page allocation stats
#rb mickael.gilabert

[CL 34510261 by ben woodhouse in ue5-main branch]
2024-06-19 15:32:20 -04:00
..
2024-06-03 19:31:53 -04:00