# Android P app crash by "IMGSRV : :0: PVRPMapKMem: mmap(2) failed"

**URL:** <https://forums.imgtec.com/t/android-p-app-crash-by-imgsrv-pvrpmapkmem-mmap-2-failed/3629>\
**Category:** PowerVR Insider\
**Created:** [January 13, 2023, 12:37am UTC](https://forums.imgtec.com/t/android-p-app-crash-by-imgsrv-pvrpmapkmem-mmap-2-failed/3629 "2023-01-13T00:37:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ximeng](https://avatars.discourse-cdn.com/v4/letter/x/8c91f0/32.png) [@Ximeng](https://forums.imgtec.com/u/Ximeng)\
**Post date:** [January 13, 2023, 12:37am UTC](https://forums.imgtec.com/t/android-p-app-crash-by-imgsrv-pvrpmapkmem-mmap-2-failed/3629/1 "2023-01-13T00:37:40Z")

</div>

we use SGX544-MP2 core in Android P ,but we get crash on our app，it seem like something wrong in GPU。Can we get some suggestions to solve this question?

this is our logcat when crash:

01-11 14:06:18.754 921 983 E IMGSRV : :0: PVRPMapKMem: mmap(2) failed: Mapping handle=0x2e6: Operation not permitted  
01-11 14:06:18.754 921 983 E IMGSRV : :0: PVRSRVMapDeviceMem: PVRPMapKMem failed for buffer  
01-11 14:06:18.754 921 983 E IMGSRV : :0: Failed to acquire CPU mapping for texture device memory  
01-11 14:06:18.754 921 983 E IMGSRV : :0: PVRPMapKMem: mmap(2) failed: Mapping handle=0x2e6: Operation not permitted  
01-11 14:06:18.754 921 983 E IMGSRV : :0: PVRSRVMapDeviceMem: PVRPMapKMem failed for buffer  
01-11 14:06:18.754 921 983 E IMGSRV : :0: Failed to acquire CPU mapping for texture device memory  
--------- beginning of crash  
01-11 14:06:18.755 921 983 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV\_MAPERR), fault addr 0x0 in tid 983 (RenderThread), pid 921 (testdemo)  
01-11 14:06:18.924 921 1773 W testdemo: Large object allocation failed: Failed anonymous mmap(0x0, 188416, 0x3, 0x2, 166, 0): Operation not permitted. See process maps in the log.  
01-11 14:06:18.924 921 1773 I testdemo: Starting a blocking GC Alloc  
01-11 14:06:18.924 921 1773 I testdemo: Starting a blocking GC Alloc  
01-11 14:06:18.902 4271 4271 I crash\_dump32: type=1400 audit(0.0:666): avc: denied { read write } for path=“/dev/null” dev=“tmpfs” ino=11745 scontext=u:r:crash\_dump:s0 tcontext=u:object\_r:device:s0 tclass=chr\_file permissive=1  
01-11 14:06:19.089 4272 4272 I crash\_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstone  
01-11 14:06:19.089 274 274 I /system/bin/tombstoned: received crash request for pid 983  
01-11 14:06:19.090 4272 4272 I crash\_dump32: performing dump of process 921 (target tid = 983)  
01-11 14:06:19.118 4272 4272 F DEBUG : \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\* \*\*\*  
01-11 14:06:19.118 4272 4272 F DEBUG : Build fingerprint: ‘Android/am57\_ax3/am57\_ax3:9/PPR1.181005.003/root09021425:userdebug/test-keys’  
01-11 14:06:19.118 4272 4272 F DEBUG : Revision: ‘0’  
01-11 14:06:19.118 4272 4272 F DEBUG : ABI: ‘arm’  
01-11 14:06:19.118 4272 4272 F DEBUG : pid: 921, tid: 983, name: RenderThread \>\>\> testdemo \<\<\<  
01-11 14:06:19.118 4272 4272 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV\_MAPERR), fault addr 0x0  
01-11 14:06:19.118 4272 4272 F DEBUG : Cause: null pointer dereference  
01-11 14:06:19.118 4272 4272 F DEBUG : r0 fffffffc r1 ac1cbbc0 r2 000000fa r3 000000bb  
01-11 14:06:19.118 4272 4272 F DEBUG : r4 000000f9 r5 ac1cbbc4 r6 fffffffc r7 ff231512  
01-11 14:06:19.118 4272 4272 F DEBUG : r8 00000000 r9 7bb24000 r10 02514720 r11 000003e8  
01-11 14:06:19.118 4272 4272 F DEBUG : ip 00000400 sp 7b484908 lr 000003e8 pc 97226c94  
01-11 14:06:19.086 4272 4272 I crash\_dump32: type=1400 audit(0.0:667): avc: denied { open } for path=“/dev/pmsg0” dev=“tmpfs” ino=11755 scontext=u:r:crash\_dump:s0 tcontext=u:object\_r:device:s0 tclass=chr\_file permissive=1  
01-11 14:06:19.217 921 1775 W testdemo: Large object allocation failed: Failed anonymous mmap(0x0, 188416, 0x3, 0x2, 166, 0): Operation not permitted. See process maps in the log.  
01-11 14:06:19.217 921 1775 I testdemo: Waiting for a blocking GC Alloc  
01-11 14:06:19.286 4272 4272 F DEBUG :  
01-11 14:06:19.286 4272 4272 F DEBUG : backtrace:  
01-11 14:06:19.286 4272 4272 F DEBUG : #00 pc 00021c94 /vendor/lib/egl/libGLESv2\_POWERVR\_SGX544\_116.so  
01-11 14:06:19.286 4272 4272 F DEBUG : #01 pc 00022c9d /vendor/lib/egl/libGLESv2\_POWERVR\_SGX544\_116.so  
01-11 14:06:19.286 4272 4272 F DEBUG : #02 pc 00023b0d /vendor/lib/egl/libGLESv2\_POWERVR\_SGX544\_116.so (glTexImage2D+64)  
01-11 14:06:19.286 4272 4272 F DEBUG : #03 pc 0007d5a1 /system/lib/libhwui.so (android::uirenderer::debug::DefaultGlesDriver::glTexImage2D\_(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const\*)+34)  
01-11 14:06:19.286 4272 4272 F DEBUG : #04 pc 00080187 /system/lib/libhwui.so (android::uirenderer::debug::GlesErrorCheckWrapper::glTexImage2D\_(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const\*)+38)  
01-11 14:06:19.286 4272 4272 F DEBUG : #05 pc 00375df5 /system/lib/libhwui.so (wrap\_glTexImage2D(unsigned int, int, int, int, int, int, unsigned int, unsigned int, void const\*)+52)  
01-11 14:06:19.286 4272 4272 F DEBUG : #06 pc 000d5323 /system/lib/libhwui.so (android::uirenderer::uploadToTexture(bool, int, unsigned int, unsigned int, int, int, int, int, void const\*)+54)  
01-11 14:06:19.286 4272 4272 F DEBUG : #07 pc 000d4ea1 /system/lib/libhwui.so (android::uirenderer::Texture::upload(android::Bitmap&)+380)  
01-11 14:06:19.286 4272 4272 F DEBUG : #08 pc 000d568b /system/lib/libhwui.so (android::uirenderer::TextureCache::createTexture(android::Bitmap\*)+122)  
01-11 14:06:19.286 4272 4272 F DEBUG : #09 pc 00386317 /system/lib/libhwui.so (android::uirenderer::TextureCache::getCachedTexture(android::Bitmap\*)+210)  
01-11 14:06:19.286 4272 4272 F DEBUG : #10 pc 0009c5a1 /system/lib/libhwui.so (android::uirenderer::renderthread::OpenGLPipeline::pinImages(android::uirenderer::LsaVector\<sk\_spandroid::Bitmap\>&)+36)  
01-11 14:06:19.286 4272 4272 F DEBUG : #11 pc 000b01e7 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+46)  
01-11 14:06:19.286 4272 4272 F DEBUG : #12 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.286 4272 4272 F DEBUG : #13 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.286 4272 4272 F DEBUG : #14 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.286 4272 4272 F DEBUG : #15 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.286 4272 4272 F DEBUG : #16 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #17 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #18 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #19 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #20 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #21 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #22 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #23 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #24 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #25 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #26 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #27 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #28 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #29 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #30 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #31 pc 000b02c9 /system/lib/libhwui.so (android::uirenderer::DisplayList::prepareListAndChildren(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool, std::\_\_1::function\<void (android::uirenderer::RenderNode\*, android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)\>)+272)  
01-11 14:06:19.287 4272 4272 F DEBUG : #32 pc 003531e1 /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTreeImpl(android::uirenderer::TreeObserver&, android::uirenderer::TreeInfo&, bool)+3932)  
01-11 14:06:19.287 4272 4272 F DEBUG : #33 pc 00383bbf /system/lib/libhwui.so (android::uirenderer::RenderNode::prepareTree(android::uirenderer::TreeInfo&)+110)  
01-11 14:06:19.287 4272 4272 F DEBUG : #34 pc 000a7acf /system/lib/libandroid\_runtime.so (android::RootRenderNode::prepareTree(android::uirenderer::TreeInfo&)+192)  
01-11 14:06:19.287 4272 4272 F DEBUG : #35 pc 0009a6c5 /system/lib/libhwui.so (android::uirenderer::renderthread::CanvasContext::prepareTree(android::uirenderer::TreeInfo&, long long\*, long long, android::uirenderer::RenderNode\*)+228)  
01-11 14:06:19.288 4272 4272 F DEBUG : #36 pc 0037be8d /system/lib/libhwui.so (\_ZNSt3\_\_110\_\_function6\_\_funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$\_0NS\_9allocatorIS6\_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+320)  
01-11 14:06:19.288 4272 4272 F DEBUG : #37 pc 00342e1f /system/lib/libhwui.so (android::uirenderer::WorkQueue::process()+122)  
01-11 14:06:19.288 4272 4272 F DEBUG : #38 pc 000a3677 /system/lib/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+182)  
01-11 14:06:19.288 4272 4272 F DEBUG : #39 pc 0000c0bf /system/lib/libutils.so (android:🧵:\_threadLoop(void\*)+170)  
01-11 14:06:19.288 4272 4272 F DEBUG : #40 pc 00064343 /system/lib/libc.so (\_\_pthread\_start(void\*)+22)  
01-11 14:06:19.288 4272 4272 F DEBUG : #41 pc 0001dfad /system/lib/libc.so (\_\_start\_thread+32)

---

<div class="post-metadata">

**Author:** ![CarlosSarria](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.imgtec.com/carlossarria/32/263_2.png) [@CarlosSarria](https://forums.imgtec.com/u/CarlosSarria)\
**Post date:** [January 13, 2023, 8:39am UTC](https://forums.imgtec.com/t/android-p-app-crash-by-imgsrv-pvrpmapkmem-mmap-2-failed/3629/2 "2023-01-13T08:39:20Z")

</div>

Hi, Ximeng.

Welcome to our forum!  
The problem you describe looks like a out-of-memory situation. Are you able to run simpler OpenGL ES applications on your system? Are you handling returned errors when handling texture upload?

Thanks.

Carlos.

---

<div class="post-metadata">

**Author:** ![Ximeng](https://avatars.discourse-cdn.com/v4/letter/x/8c91f0/32.png) [@Ximeng](https://forums.imgtec.com/u/Ximeng)\
**Post date:** [January 17, 2023, 2:23am UTC](https://forums.imgtec.com/t/android-p-app-crash-by-imgsrv-pvrpmapkmem-mmap-2-failed/3629/3 "2023-01-17T02:23:05Z")

</div>

Hi,Carlos  
Thank you for reply.  
it seem works fine in a simpler OpenGL ES applications.  
We use Ti AM5728 cpu, our app also works fine on Android 5.1.1 SDK, but we need to upgrade Android system to Andoid P and those crash comes. and these crash on Android P in my app not happen everytime but high probabilty.  
so where can i get new version for .so like (libEGL\_POWERVR\_SGX544\_116.so\libGLESv2\_POWERVR\_SGX544\_116.so\libGLESv1\_CM\_POWERVR\_SGX544\_116.so)?  
by the way , i have asked ti for help ,but them had not supported Android SDK any more.

---

<div class="post-metadata">

**Author:** ![CarlosSarria](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.imgtec.com/carlossarria/32/263_2.png) [@CarlosSarria](https://forums.imgtec.com/u/CarlosSarria)\
**Post date:** [January 17, 2023, 8:36am UTC](https://forums.imgtec.com/t/android-p-app-crash-by-imgsrv-pvrpmapkmem-mmap-2-failed/3629/4 "2023-01-17T08:36:21Z")

</div>

Hi, Ximeng.

The drivers are built and distributed by our customers for their own platforms so, if TI have already said the do not support these drivers any longer, there is not much we can do.  
The issue above seems to be a problem with memory. I remember that the old Android puts a very stringent limit to the amount of memory an application can allocate. Maybe reducing the total memory allocated (e.g. smaller textures) could ease this problem.

Regards.

Carlos.
