Imagination PowerVR SDK Blog

Memory Management - inexplicable behavior



during the execution of my self-developed application (C++/OpenGL 3D terrain visualization, embedded, current Ubuntu kernel, PowerVR SGX) I observe the following inexplicable behavior: the viewer spins around -> the application hangs frequently (the rotation speed has no effect) - the application hangs on an OpenGL call (glDrawElements() of a triangle strip with texture coordinates) - interesting and for me inexplicable is the output of the used/allocated memory - "top": VIRT (~215m) and RES (~190m) are nearly constant during the execution time (vary by ~ 5m), but the SHR-memory increases during the execution from ~40m to ~120m, the application runs until a SHR-memory of ~120m (run time: ~5 seconds) -> the application hangs (hang time: ~2 seconds), subsequently the SHR-memory is decreased to ~40m and the applications runs again until the next hang (SHR-memory ~40m) and so on. During the described execution time no new data is loaded, all data is already cached.

What is the reason for the app-hang? Why is allocated SHR memory increased/decreased continuously - there is enough free memory available during the entire execution time? What can I do - so that the application is running without the described hangs?

Thanks for your advice and help


Hi Markus,

What platform are you running on? Can you share your GPU driver version string with us (can be queried with ‘cat /proc/pvr/version’)?



Hi Joe,
please find below the requested information:
- the application is running on a Gumstix Overo board
- the GPU driver version string: Version CustomerTI_OMAP4430_Linux_GPL sgxddk 17 1.7@867897 (release) /home/Projects/OveroBoard/Kernel/RobertCNelson-stable-kernel-31e5e0c/Graphics_SDK_4_06_00_02/GFX_Linux_KM
System Version String: SGX revision = 1.2.5
Thanks for your help,


Hi Markus,

Thanks for the information.

Can you use PVRTrace to record your application (with data recording enabled) and send us the recorded file, please?