RaspberryPi4: Random borkage of HEVC HW decode

This is for ARMv8 based devices

RaspberryPi4: Random borkage of HEVC HW decode

Postby somini » Wed Dec 22, 2021 1:37 am

I can't reproduce this (it happens seemingly at random), but sometimes there are problems with the HEVC decoder and it just refuses to work, it requires a reboot. This might have been introduced recently, but I can't be sure. I managed to play a h264 video in this state and that worked well.

I have the kernel logs for this:

$this->bbcode_second_pass_code('', '
Dec 21 23:11:35 kodi kernel: rpivid feb10000.codec: rpivid_h265_start: (1920x1040)
Dec 21 23:11:35 kodi kernel: VideoPlayer: page allocation failure: order:4, mode:0x40cc0(GFP_KERNEL|__GFP_COMP), nodemask=(null),cpuset=/,mems_allowed=0
Dec 21 23:11:35 kodi kernel: CPU: 2 PID: 1814 Comm: VideoPlayer Tainted: G C 5.10.83-1-rpi-ARCH #1
Dec 21 23:11:35 kodi kernel: Hardware name: BCM2711
Dec 21 23:11:35 kodi kernel: [<c020f0d8>] (unwind_backtrace) from [<c020ae58>] (show_stack+0x10/0x14)
Dec 21 23:11:35 kodi kernel: [<c020ae58>] (show_stack) from [<c0e0a18c>] (dump_stack+0xa4/0xc4)
Dec 21 23:11:35 kodi kernel: [<c0e0a18c>] (dump_stack) from [<c03f91e0>] (warn_alloc+0xe0/0x170)
Dec 21 23:11:35 kodi kernel: [<c03f91e0>] (warn_alloc) from [<c03fa338>] (__alloc_pages_nodemask+0x10c8/0x1164)
Dec 21 23:11:35 kodi kernel: [<c03fa338>] (__alloc_pages_nodemask) from [<c03cd88c>] (kmalloc_order+0x34/0xf0)
Dec 21 23:11:35 kodi kernel: [<c03cd88c>] (kmalloc_order) from [<c03cd964>] (kmalloc_order_trace+0x1c/0xcc)
Dec 21 23:11:35 kodi kernel: [<c03cd964>] (kmalloc_order_trace) from [<bf6664f4>] (rpivid_h265_start+0x134/0xc40 [rpivid_hevc])
Dec 21 23:11:35 kodi kernel: [<bf6664f4>] (rpivid_h265_start [rpivid_hevc]) from [<bf661ae0>] (rpivid_start_streaming+0x88/0x1a8 [rpivid_hevc])
Dec 21 23:11:35 kodi kernel: [<bf661ae0>] (rpivid_start_streaming [rpivid_hevc]) from [<bf3eda08>] (vb2_start_streaming+0x5c/0x16c [videobuf2_common])
Dec 21 23:11:35 kodi kernel: [<bf3eda08>] (vb2_start_streaming [videobuf2_common]) from [<bf3edb98>] (vb2_core_streamon+0x80/0x170 [videobuf2_common])
Dec 21 23:11:35 kodi kernel: [<bf3edb98>] (vb2_core_streamon [videobuf2_common]) from [<bf219f10>] (v4l2_m2m_ioctl_streamon+0x20/0x50 [v4l2_mem2mem])
Dec 21 23:11:35 kodi kernel: [<bf219f10>] (v4l2_m2m_ioctl_streamon [v4l2_mem2mem]) from [<bf26f518>] (__video_do_ioctl+0x238/0x490 [videodev])
Dec 21 23:11:35 kodi kernel: [<bf26f518>] (__video_do_ioctl [videodev]) from [<bf27040c>] (video_usercopy+0x184/0x5d8 [videodev])
Dec 21 23:11:35 kodi kernel: [<bf27040c>] (video_usercopy [videodev]) from [<c044b564>] (sys_ioctl+0x34c/0x904)
Dec 21 23:11:35 kodi kernel: [<c044b564>] (sys_ioctl) from [<c0200214>] (__sys_trace_return+0x0/0x2c)
Dec 21 23:11:35 kodi kernel: Exception stack(0xc16c1fa8 to 0xc16c1ff0)
Dec 21 23:11:35 kodi kernel: 1fa0: af2b7f78 00000000 00000034 40045612 7c4047b8 0000000a
Dec 21 23:11:35 kodi kernel: 1fc0: af2b7f78 00000000 7c4047b8 00000036 02e0a234 af247db8 02e0a20c 9ea16970
Dec 21 23:11:35 kodi kernel: 1fe0: 02e8e048 7c4047ac 025c8998 b5a579fc
Dec 21 23:11:35 kodi kernel: Mem-Info:
Dec 21 23:11:35 kodi kernel: active_anon:161 inactive_anon:65585 isolated_anon:0
active_file:15174 inactive_file:44334 isolated_file:0
unevictable:26610 dirty:1 writeback:0
slab_reclaimable:4112 slab_unreclaimable:8563
mapped:56528 shmem:26783 pagetables:678 bounce:0
free:1836118 free_pcp:371 free_cma:116703
Dec 21 23:11:35 kodi kernel: Node 0 active_anon:644kB inactive_anon:262340kB active_file:60696kB inactive_file:177680kB unevictable:106440kB isolated(anon):0kB isolated(file):0>
Dec 21 23:11:35 kodi kernel: DMA free:478940kB min:7228kB low:8008kB high:8788kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:21128kB inactive_file:780>
Dec 21 23:11:35 kodi kernel: lowmem_reserve[]: 0 0 7284 7284
Dec 21 23:11:35 kodi kernel: HighMem free:6865028kB min:512kB low:10016kB high:19520kB reserved_highatomic:0KB active_anon:644kB inactive_anon:262340kB active_file:39764kB inac>
Dec 21 23:11:35 kodi kernel: lowmem_reserve[]: 0 0 0 0
Dec 21 23:11:35 kodi kernel: DMA: 1268*4kB (UEC) 493*8kB (UME) 180*16kB (UEC) 12*32kB (UE) 1*64kB (E) 0*128kB 1*256kB (C) 1*512kB (C) 1*1024kB (C) 1*2048kB (C) 113*4096kB (C) =>
Dec 21 23:11:35 kodi kernel: HighMem: 3049*4kB (UM) 1745*8kB (UM) 1425*16kB (UM) 552*32kB (UM) 161*64kB (UM) 142*128kB (UM) 115*256kB (UM) 76*512kB (UM) 31*1024kB (UM) 17*2048k>
Dec 21 23:11:35 kodi kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
Dec 21 23:11:35 kodi kernel: 86333 total pagecache pages
Dec 21 23:11:35 kodi kernel: 0 pages in swap cache
Dec 21 23:11:35 kodi kernel: Swap cache stats: add 0, delete 0, find 0/0
Dec 21 23:11:35 kodi kernel: Free swap = 0kB
Dec 21 23:11:35 kodi kernel: Total swap = 0kB
Dec 21 23:11:35 kodi kernel: 2061312 pages RAM
Dec 21 23:11:35 kodi kernel: 1864704 pages HighMem/MovableOnly
Dec 21 23:11:35 kodi kernel: 40913 pages reservedfree
Dec 21 23:11:35 kodi kernel: 131072 pages cma reserved
Dec 21 23:11:35 kodi kernel: rpivid feb10000.codec: Failed to allocate decode envs
Dec 21 23:11:35 kodi kernel: rpivid feb10000.codec: rpivid_start_streaming: qtype=10: FAIL
')

A few seconds later I tried again and got basically the same logs. After rebooting, it works, with some minor warnings:

$this->bbcode_second_pass_code('', '
Dec 21 23:14:49 kodi kernel: rpivid feb10000.codec: rpivid_h265_start: (1920x1040)
Dec 21 23:14:49 kodi kernel: rpivid feb10000.codec: SPS changed
Dec 21 23:14:49 kodi kernel: rpivid feb10000.codec: PPS changed
Dec 21 23:45:03 kodi kernel: rpivid feb10000.codec: Missing DPB ent 0, timestamp=0, index=-1
Dec 21 23:45:03 kodi kernel: rpivid feb10000.codec: Missing DPB ent 1, timestamp=0, index=-1
Dec 21 23:45:03 kodi kernel: rpivid feb10000.codec: Missing DPB ent 2, timestamp=0, index=-1
Dec 21 23:45:03 kodi kernel: rpivid feb10000.codec: Missing DPB ent 3, timestamp=0, index=-1
')

As I said, I can't really reproduce this. Not sure if this is lack of RAM, I had just refreshed Kodi's database a few minutes before.

I'm running all vanilla packages from the repos.

$this->bbcode_second_pass_code('', '
$ cat /boot/config.txt
# See /boot/overlays/README for all available options

dtoverlay=vc4-kms-v3d
initramfs initramfs-linux.img followkernel

[pi4]
# Run as fast as firmware / board allows
arm_boost=1

[all]
include kodi.config.txt
$ uname -a
Linux kodi 5.10.83-1-rpi-ARCH #1 SMP Tue Dec 7 15:22:25 UTC 2021 armv7l GNU/Linux
')
somini
 
Posts: 1
Joined: Wed Jul 14, 2021 1:20 am

Re: RaspberryPi4: Random borkage of HEVC HW decode

Postby graysky » Wed Dec 22, 2021 12:30 pm

Same video file each time? Enable debug logging in kodi to capture helpful data so you can post it here or to the kodi forums the next time it happens.
graysky
Developer
 
Posts: 1728
Joined: Sun Jun 26, 2011 6:56 am
Location: /run/user/1000

Re: RaspberryPi4: Random borkage of HEVC HW decode

Postby unlimitedbacon » Sun Jan 02, 2022 11:34 pm

I've been having the same issue for some time. It is any HEVC video file, not any one in particular. Sometimes restarting Kodi will solve it, but not always. I'll try to collect a debug log.
unlimitedbacon
 
Posts: 2
Joined: Sun Jan 02, 2022 11:31 pm


Return to ARMv8 Devices

Who is online

Users browsing this forum: No registered users and 6 guests