Jump to content

Kodi causes kernel failure of memory allocation in CMA


Iavael

Recommended Posts

When I start kodi it writes to stdout

Quote

/usr/lib/arm-linux-gnueabihf/kodi/kodi-xrandr: Failed to get size of gamma for output default
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
     after 128 requests (128 known processed) with 0 events remaining.
*** Error in `/usr/lib/arm-linux-gnueabihf/kodi/kodi.bin': double free or corruption (out): 0x01a82538 ***
Aborted
Crash report available at /home/user/kodi_crashlog-20170730_001210.log

and I see in dmesg

Quote

[ 3025.322262] UMP<2>: New session opened
[ 3026.744717] ------------[ cut here ]------------
[ 3026.751300] WARNING: at mm/page_alloc.c:2325 __alloc_pages_nodemask+0x374/0x850()
[ 3026.765661] Modules linked in: cpufreq_userspace xts algif_skcipher af_alg sha256_generic bridge dm_thin_pool dm_persistent_data dm_bufio 8021q garp stp llc 8192cu sg spidev sunxi_wdt brcmfmac brcmutil mali_drm drm mali disp_ump ump
[ 3026.792239] [<c001538c>] (unwind_backtrace+0x0/0x12c) from [<c0037030>] (warn_slowpath_common+0x54/0x64)
[ 3026.800613] [<c0037030>] (warn_slowpath_common+0x54/0x64) from [<c00370dc>] (warn_slowpath_null+0x1c/0x24)
[ 3026.809524] [<c00370dc>] (warn_slowpath_null+0x1c/0x24) from [<c00b4298>] (__alloc_pages_nodemask+0x374/0x850)
[ 3026.818730] [<c00b4298>] (__alloc_pages_nodemask+0x374/0x850) from [<c0018a20>] (__alloc_remap_buffer+0x30/0x160)
[ 3026.827397] [<c0018a20>] (__alloc_remap_buffer+0x30/0x160) from [<c0018ce8>] (arm_dma_alloc+0x198/0x290)
[ 3026.836119] [<c0018ce8>] (arm_dma_alloc+0x198/0x290) from [<bf004664>] (cma_allocate+0x98/0x288 [ump])
[ 3026.845159] [<bf004664>] (cma_allocate+0x98/0x288 [ump]) from [<bf002b40>] (_ump_ukk_allocate+0xcc/0x338 [ump])
[ 3026.854744] [<bf002b40>] (_ump_ukk_allocate+0xcc/0x338 [ump]) from [<bf005810>] (ump_allocate_wrapper+0x64/0x224 [ump])
[ 3026.863476] [<bf005810>] (ump_allocate_wrapper+0x64/0x224 [ump]) from [<c00fea34>] (do_vfs_ioctl+0x3ac/0x594)
[ 3026.870961] [<c00fea34>] (do_vfs_ioctl+0x3ac/0x594) from [<c00fec50>] (sys_ioctl+0x34/0x60)
[ 3026.878302] [<c00fec50>] (sys_ioctl+0x34/0x60) from [<c000ec20>] (ret_fast_syscall+0x0/0x30)
[ 3026.882081] ---[ end trace 1d210551f3cf7e0b ]---
[ 3026.882815] UMP<1>: Failed to allocate needed CMA memory 8294400 bytes
[ 3026.888137] UMP<1>: _ump_ukk_allocate() failed in ump_ioctl_allocate()
[ 3026.913055] [DISP] layer allocated at close: 0,101
[ 3026.913856] UMP<2>: Session closed

 

My setup

Board: Lamobo R1

Kernel: 3.4.113 (default)

Xorg DDX: fbturbo

GLES: mali r3p0

VDPAU: cedrus

 

This error occurs with various memory reservation settings in kernel arguments including default (no reservation settings at all in kernel cmdline)

Link to comment
Share on other sites

Default memory reservations from dmesg:

Quote

[  +0.000000] Memory Reserved:
[  +0.000000]   SYS  : 0x43000000 - 0x4300ffff  (  64 kB)
[  +0.000000]   VE   : 0x44000000 - 0x48ffffff  (  80 MB)
[  +0.000000]   G2D  : 0x49000000 - 0x49ffffff  (  16 MB)
[  +0.000000]   LCD  : 0x4a000000 - 0x4bffffff  (  32 MB)

CMA limit is always 128M and I wasn't able to change it with kernel argument cma 

Quote

[  +0.003704] UMP<2>: Using CMA memory backend, allocation limit: 134217728

 

Also forgot to mention that somehow CONFIG_CMA option in kernel is disabled, so I dunno how UMP's cma allocator works at all.

Edited by Iavael
Mentioned CONFIG_CMA
Link to comment
Share on other sites

On 30.07.2017 г. at 0:35 AM, Iavael said:

Also forgot to mention that somehow CONFIG_CMA option in kernel is disabled, so I dunno how UMP's cma allocator works at all.

 

You noticed it right. This is not H3 and CMA is disabled. You have to enable it in kernel config, put some size (192/256Mb) and rebuil it:

CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
#
# Default contiguous memory area size:
#
CONFIG_CMA_SIZE_MBYTES=192
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7

I am not sure Kodi will work on A20, even with s/w video acceleration and probably you will have some GLES error later if you don't take care of Mali driver, also. There were topics here... Better try this - hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy), but it's a huge mess so far.

Link to comment
Share on other sites

19 hours ago, RagnerBG said:

This is not H3 and CMA is disabled

 

Why are these options disabled in armbian kernel for a20?

 

19 hours ago, RagnerBG said:

I am not sure Kodi will work on A20, even with s/w video acceleration and probably you will have some GLES error later if you don't take care of Mali driver, also. There were topics here... Better try this - hardware acceleration on allwinner A10/A20 with vdpau and OpenGLES (zero-copy), but it's a huge mess so far.

Thx for link. I have VDPAU working in mpv already, so I'll evaluate what's needed to be done for Kodi.

Link to comment
Share on other sites

3 hours ago, Iavael said:

 

Why are these options disabled in armbian kernel for a20?

I am not sure, it's experimental, as it said. Maybe because video memory reservations can be done in fex file, without the need of CMA and this will be enough for VDPAU video acceleration. But zero-copy double buffering will not work without it and maybe there will be problem with 3D GLES acceleration, needed for KODI interface and menu navigation. About this link, better check the whole thread, starting from the end. A lot of things have to be done to make it work, i couldn't.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines