Licensee reports missing memory tracking for LLM on iOS:

In Engine/Source/Runtime/Core/Private/HAL/MallocBinned.cpp in SmallOSAlloc, there is a compiler define for IOS and within it there is an LLM_PLATFORM_SCOPE applying an FMalloc tag but there is never a call to LLM(FLowLevelMemTracker::Get().OnLowLevelAlloc(ELLMTracker::Platform, Ptr, NewSize)). I stepped through this code and ::malloc is calling into the OS malloc and not redirecting through the overloaded UE4 malloc. The LLM OnLowLevelFree is missing in SmallOSFree as well.

I identified this using the LLM csv output in a blank level. The FMallocUnused stat was negative. After making this fix, it went positive. So I wanted to confirm this is correct and if so, how to get it back into the engine for the next update.

Steps to Reproduce

Licensee report from [Link Removed]

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-104420 in the post.

Login to Vote

ComponentUE - Platform - Mobile
Affects Versions4.26
Target Fix5.1
Fix Commit20894856
CreatedDec 11, 2020
ResolvedJul 8, 2022
UpdatedJul 8, 2022