Skip to content

Pi 4B / 6.18.39: v4l2slh265dec + kmssink pipeline hangs in unkillable D state after an accurate seek (sometimes WARNING at mc-request.c:470) — Pi 5 not affected #7537

Description

@youssefqarri

Describe the bug

Following up on the previous phase1_cb issue (fixed by 6.18 — thanks): plain HEVC playback now works, but a pipeline that performs an accurate segment seek while PAUSED before going to PLAYING hangs the decoder: the process enters uninterruptible D state (survives SIGKILL), and the machine needs a reboot to recover DRM/the decoder. Sometimes (2 occurrences out of 4) the kernel logs:

WARNING: CPU: 0 PID: 1453 at drivers/media/mc/mc-request.c:470 media_request_object_unbind+0x178/0x1f0 [mc]

…followed by GStreamer reporting "Not enough memory to decode H265 stream" (CMA has 465 MB free). The hang itself is 100 % reproducible (4/4 attempts).

Steps to reproduce the behaviour

Attached: repro_mc_request.py (30 lines: PAUSED → accurate FLUSH|SEGMENT seek to 2 s → PLAYING) and the 44 KB SMPTE-bars test file from the previous issue.

sudo python3 repro_mc_request.py test_hevc_1080p25.mp4

Expected: 60 s of playback then "clean exit". Actual: no output, process wedged in D state, reboot required. Full kernel traces from two occurrences attached (traces_completes.txt).

repro_mc_request.py

Device (s)

Raspberry Pi 4 Mod. B

System

  • Raspberry Pi 4B rev 1.5 — kernel 6.18.39+rpt-rpi-v8 — GStreamer 1.26.2 (Debian trixie)
  • Raspberry Pi 5 on the same kernel is NOT affected (same script runs clean)
  • Plain playback (gst-launch-1.0 filesrc ! qtdemux ! h265parse ! v4l2slh265dec ! kmssink) is also clean — the seek is the trigger

Logs

########## BOOT -1 ##########
Aug 03 16:32:58 xxxxx kernel: ------------[ cut here ]------------
Aug 03 16:32:58 xxxxx kernel: WARNING: CPU: 0 PID: 608 at drivers/gpu/drm/vc4/vc4_hvs.c:1064 __vc4_hvs_stop_channel+0x158/0x180 [vc4]
Aug 03 16:32:58 xxxxx kernel: Modules linked in: rfcomm cmac algif_hash aes_arm64 algif_skcipher af_alg bnep brcmfmac_cyw binfmt_misc brcmfmac brcmutil hci_uart btbcm cfg80211 bluetooth ecdh_generic ecc v3d rfkill vc4 raspberrypi_hwmon gpu_sched bcm2835_codec(C) bcm2835_v4l2(C) bcm2835_isp(C) drm_shmem_helper snd_soc_hdmi_codec i2c_brcmstb bcm2835_mmal_vchiq(C) drm_exec drm_display_helper cec snd_bcm2835(C) rpi_hevc_dec drm_dma_helper drm_client_lib raspberrypi_gpiomem vc_sm_cma(C) drm_kms_helper videobuf2_vmalloc v4l2_mem2mem snd_soc_core videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 snd_compress snd_pcm_dmaengine videodev snd_pcm videobuf2_common snd_timer mc snd nvmem_rmem sch_fq_codel i2c_dev zram lz4_compress drm fuse drm_panel_orientation_quirks backlight nfnetlink ipv6 libsha1
Aug 03 16:32:58 xxxxx kernel: CPU: 0 UID: 0 PID: 608 Comm: kworker/0:3 Tainted: G C 6.18.39+rpt-rpi-v8 #1 PREEMPT Debian 1:6.18.39-1+rpt1
Aug 03 16:32:58 xxxxx kernel: Tainted: [C]=CRAP
Aug 03 16:32:58 xxxxx kernel: Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)
Aug 03 16:32:58 xxxxx kernel: Workqueue: events console_callback
Aug 03 16:32:58 xxxxx kernel: pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
Aug 03 16:32:58 xxxxx kernel: pc : __vc4_hvs_stop_channel+0x158/0x180 [vc4]
Aug 03 16:32:58 xxxxx kernel: lr : __vc4_hvs_stop_channel+0x50/0x180 [vc4]
Aug 03 16:32:58 xxxxx kernel: sp : ffffffc082c7b7f0
Aug 03 16:32:58 xxxxx kernel: x29: ffffffc082c7b800 x28: ffffff8043018920 x27: 0000000000000038
Aug 03 16:32:58 xxxxx kernel: x26: ffffffedd07a8b80 x25: 00000003edb5ee72 x24: ffffff8047ed3000
Aug 03 16:32:58 xxxxx kernel: x23: ffffff8042dec180 x22: 0000000000000001 x21: ffffff8045730500
Aug 03 16:32:58 xxxxx kernel: x20: ffffff80439f8080 x19: 0000000000000001 x18: 0000000000000000
Aug 03 16:32:58 xxxxx kernel: x17: 0000000000000000 x16: ffffffee0096a558 x15: 000015335a37fe90
Aug 03 16:32:58 xxxxx kernel: x14: 00000007f3904070 x13: 0000000000000115 x12: 0000000000000007
Aug 03 16:32:58 xxxxx kernel: x11: 00000000000000c0 x10: 0000000000001ac0 x9 : ffffffedd041c2cc
Aug 03 16:32:58 xxxxx kernel: x8 : ffffff804754bca0 x7 : 0000000000000001 x6 : 0000000000000000
Aug 03 16:32:58 xxxxx kernel: x5 : 00000000000001ef x4 : 0000000000000000 x3 : 0000000040000000
Aug 03 16:32:58 xxxxx kernel: x2 : 0000000000000000 x1 : 0000000010000000 x0 : 0000000000000000
Aug 03 16:32:58 xxxxx kernel: Call trace:
Aug 03 16:32:58 xxxxx kernel: __vc4_hvs_stop_channel+0x158/0x180 [vc4] (P)
Aug 03 16:32:58 xxxxx kernel: vc4_hvs_stop_channel+0x38/0x50 [vc4]
Aug 03 16:32:58 xxxxx kernel: vc4_crtc_disable+0x13c/0x1e8 [vc4]
Aug 03 16:32:58 xxxxx kernel: vc4_crtc_atomic_disable+0xa0/0xe8 [vc4]
Aug 03 16:32:58 xxxxx kernel: drm_atomic_helper_commit_crtc_disable+0x114/0x1f8 [drm_kms_helper]
Aug 03 16:32:58 xxxxx kernel: drm_atomic_helper_commit_modeset_disables+0x3c/0x80 [drm_kms_helper]
Aug 03 16:32:58 xxxxx kernel: vc4_atomic_commit_tail+0x158/0x990 [vc4]
Aug 03 16:32:58 xxxxx kernel: commit_tail+0xa8/0x1b0 [drm_kms_helper]
Aug 03 16:32:58 xxxxx kernel: drm_atomic_helper_commit+0x184/0x1c0 [drm_kms_helper]
Aug 03 16:32:58 xxxxx kernel: drm_atomic_commit+0x94/0xe0 [drm]
Aug 03 16:32:58 xxxxx kernel: drm_client_modeset_commit_atomic+0x220/0x298 [drm]
Aug 03 16:32:58 xxxxx kernel: drm_client_modeset_dpms+0x90/0x250 [drm]
Aug 03 16:32:58 xxxxx kernel: drm_fb_helper_blank+0x8c/0x118 [drm_kms_helper]
Aug 03 16:32:58 xxxxx kernel: fb_blank+0x4c/0xc0
Aug 03 16:32:58 xxxxx kernel: fbcon_blank+0x148/0x268
Aug 03 16:32:58 xxxxx kernel: do_blank_screen+0xc8/0x208
Aug 03 16:32:58 xxxxx kernel: console_callback+0xdc/0x170
Aug 03 16:32:58 xxxxx kernel: process_one_work+0x158/0x3b8
Aug 03 16:32:58 xxxxx kernel: worker_thread+0x19c/0x328
Aug 03 16:32:58 xxxxx kernel: kthread+0x14c/0x210
Aug 03 16:32:58 xxxxx kernel: ret_from_fork+0x10/0x20
Aug 03 16:32:58 xxxxx kernel: ---[ end trace 0000000000000000 ]---
Aug 03 17:25:22 xxxxx kernel: ------------[ cut here ]------------
Aug 03 17:25:22 xxxxx kernel: WARNING: CPU: 2 PID: 2286 at drivers/media/mc/mc-request.c:470 media_request_object_unbind+0x178/0x1f0 [mc]
Aug 03 17:25:22 xxxxx kernel: Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device tun rfcomm cmac algif_hash aes_arm64 algif_skcipher af_alg bnep brcmfmac_cyw binfmt_misc brcmfmac brcmutil hci_uart btbcm cfg80211 bluetooth ecdh_generic ecc v3d rfkill vc4 raspberrypi_hwmon gpu_sched bcm2835_codec(C) bcm2835_v4l2(C) bcm2835_isp(C) drm_shmem_helper snd_soc_hdmi_codec i2c_brcmstb bcm2835_mmal_vchiq(C) drm_exec drm_display_helper cec snd_bcm2835(C) rpi_hevc_dec drm_dma_helper drm_client_lib raspberrypi_gpiomem vc_sm_cma(C) drm_kms_helper videobuf2_vmalloc v4l2_mem2mem snd_soc_core videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 snd_compress snd_pcm_dmaengine videodev snd_pcm videobuf2_common snd_timer mc snd nvmem_rmem sch_fq_codel i2c_dev zram lz4_compress drm fuse drm_panel_orientation_quirks backlight nfnetlink ipv6 libsha1
Aug 03 17:25:22 xxxxx kernel: CPU: 2 UID: 0 PID: 2286 Comm: queue0:src Tainted: G WC 6.18.39+rpt-rpi-v8 #1 PREEMPT Debian 1:6.18.39-1+rpt1
Aug 03 17:25:22 xxxxx kernel: Tainted: [W]=WARN, [C]=CRAP
Aug 03 17:25:22 xxxxx kernel: Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)
Aug 03 17:25:22 xxxxx kernel: pstate: 800000c5 (Nzcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
Aug 03 17:25:22 xxxxx kernel: pc : media_request_object_unbind+0x178/0x1f0 [mc]
Aug 03 17:25:22 xxxxx kernel: lr : media_request_object_unbind+0x34/0x1f0 [mc]
Aug 03 17:25:22 xxxxx kernel: sp : ffffffc08b2e3b00
Aug 03 17:25:22 xxxxx kernel: x29: ffffffc08b2e3b00 x28: ffffff8041404b48 x27: 0000000000000000
Aug 03 17:25:22 xxxxx kernel: x26: 0000000000000009 x25: 0000000000000000 x24: ffffff8041404900
Aug 03 17:25:22 xxxxx kernel: x23: ffffff80478c6f00 x22: ffffff8042e53b68 x21: 0000000000000000
Aug 03 17:25:22 xxxxx kernel: x20: ffffff8042e53b00 x19: ffffff80424c8c98 x18: 0000000000000150
Aug 03 17:25:22 xxxxx kernel: x17: 0000000000000000 x16: ffffffee0169f148 x15: 0000000000000000
Aug 03 17:25:22 xxxxx kernel: x14: 0000000000000177 x13: 000000001dcd6500 x12: 0000000480000008
Aug 03 17:25:22 xxxxx kernel: x11: ffffffc08002d000 x10: 0000000000001ac0 x9 : ffffffedd04f8e4c
Aug 03 17:25:22 xxxxx kernel: x8 : ffffffc08b2e3b88 x7 : 0000000000000000 x6 : 0000000000000000
Aug 03 17:25:22 xxxxx kernel: x5 : ffffff80478c6f00 x4 : dead000000000122 x3 : ffffff8042e53b38
Aug 03 17:25:22 xxxxx kernel: x2 : 0000000000000002 x1 : dead000000000100 x0 : 0000000000000000
Aug 03 17:25:22 xxxxx kernel: Call trace:
Aug 03 17:25:22 xxxxx kernel: media_request_object_unbind+0x178/0x1f0 [mc] (P)
Aug 03 17:25:22 xxxxx kernel: v4l2_ctrl_handler_free_request+0x74/0xb0 [videodev]
Aug 03 17:25:22 xxxxx kernel: v4l2_ctrl_handler_free+0x38/0x1a0 [videodev]
Aug 03 17:25:22 xxxxx kernel: hevc_d_release+0x30/0x68 [rpi_hevc_dec]
Aug 03 17:25:22 xxxxx kernel: v4l2_release+0x6c/0xf8 [videodev]
Aug 03 17:25:22 xxxxx kernel: __fput+0xd4/0x2f8
Aug 03 17:25:22 xxxxx kernel: ____fput+0x1c/0x30
Aug 03 17:25:22 xxxxx kernel: task_work_run+0x88/0x100
Aug 03 17:25:22 xxxxx kernel: do_exit+0x290/0x9d8
Aug 03 17:25:22 xxxxx kernel: do_group_exit+0x3c/0xa0
Aug 03 17:25:22 xxxxx kernel: get_signal+0x938/0xa10
Aug 03 17:25:22 xxxxx kernel: arch_do_signal_or_restart+0xa0/0x3c0
Aug 03 17:25:22 xxxxx kernel: exit_to_user_mode_loop+0xf8/0x178
Aug 03 17:25:22 xxxxx kernel: el0_svc+0x118/0x120
Aug 03 17:25:22 xxxxx kernel: el0t_64_sync_handler+0xa0/0xe8
Aug 03 17:25:22 xxxxx kernel: el0t_64_sync+0x198/0x1a0
Aug 03 17:25:22 xxxxx kernel: ---[ end trace 0000000000000000 ]---
Aug 03 17:25:22 xxxxx kernel: ------------[ cut here ]------------
Aug 03 17:25:22 xxxxx kernel: WARNING: CPU: 2 PID: 2286 at drivers/media/mc/mc-request.c:470 media_request_object_unbind+0x178/0x1f0 [mc]
Aug 03 17:25:22 xxxxx kernel: Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device tun rfcomm cmac algif_hash aes_arm64 algif_skcipher af_alg bnep brcmfmac_cyw binfmt_misc brcmfmac brcmutil hci_uart btbcm cfg80211 bluetooth ecdh_generic ecc v3d rfkill vc4 raspberrypi_hwmon gpu_sched bcm2835_codec(C) bcm2835_v4l2(C) bcm2835_isp(C) drm_shmem_helper snd_soc_hdmi_codec i2c_brcmstb bcm2835_mmal_vchiq(C) drm_exec drm_display_helper cec snd_bcm2835(C) rpi_hevc_dec drm_dma_helper drm_client_lib raspberrypi_gpiomem vc_sm_cma(C) drm_kms_helper videobuf2_vmalloc v4l2_mem2mem snd_soc_core videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 snd_compress snd_pcm_dmaengine videodev snd_pcm videobuf2_common snd_timer mc snd nvmem_rmem sch_fq_codel i2c_dev zram lz4_compress drm fuse drm_panel_orientation_quirks backlight nfnetlink ipv6 libsha1
Aug 03 17:25:22 xxxxx kernel: CPU: 2 UID: 0 PID: 2286 Comm: queue0:src Tainted: G WC 6.18.39+rpt-rpi-v8 #1 PREEMPT Debian 1:6.18.39-1+rpt1
Aug 03 17:25:22 xxxxx kernel: Tainted: [W]=WARN, [C]=CRAP
Aug 03 17:25:22 xxxxx kernel: Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)
Aug 03 17:25:22 xxxxx kernel: pstate: 800000c5 (Nzcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
Aug 03 17:25:22 xxxxx kernel: pc : media_request_object_unbind+0x178/0x1f0 [mc]
Aug 03 17:25:22 xxxxx kernel: lr : media_request_object_unbind+0x34/0x1f0 [mc]
Aug 03 17:25:22 xxxxx kernel: sp : ffffffc08b2e3b00
Aug 03 17:25:22 xxxxx kernel: x29: ffffffc08b2e3b00 x28: ffffff8041404b48 x27: 0000000000000000
Aug 03 17:25:22 xxxxx kernel: x26: 0000000000000009 x25: 0000000000000000 x24: ffffff8041404900
Aug 03 17:25:22 xxxxx kernel: x23: ffffff80478c6f00 x22: ffffff8041f1f5e8 x21: 0000000000000000
Aug 03 17:25:22 xxxxx kernel: x20: ffffff8041f1f580 x19: ffffff80424c8498 x18: 0000000000000150
Aug 03 17:25:22 xxxxx kernel: x17: 0000000000000000 x16: ffffffee0169f148 x15: 0000000000000000
Aug 03 17:25:22 xxxxx kernel: x14: 0000000000000177 x13: 000000001dcd6500 x12: 0000000480000008
Aug 03 17:25:22 xxxxx kernel: x11: ffffffc08002d000 x10: 0000000000001ac0 x9 : ffffffedd04f8e4c

Additional context

test_hevc_1080p25.mp4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions