`vc4_atomic_commit_tail` kernel warning log flood on CM4S

Open
#6,772 16 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
c, linux

Research direction

Reproduce the warning flood on a CM4S using Bookworm and kernel 6.12.20, then inspect drivers/gpu/drm/vc4/vc4_kms.c around vc4_atomic_commit_tail and the reported lines 453, 454, 507, and 508. Compare the resulting dmesg output with the issue logs; done means the underlying warnings are addressed and the repeated log flood no longer occurs.

Written by the indexing model from the issue text.

Description

Describe the bug

On a CM4S, using kernel v6.12.20, I'm experiencing a vc4_atomic_commit_tail kernel warning log flood.

Steps to reproduce the behaviour
  1. Create a recent Bookworm OS with pi-gen
  2. Boot on a CM4S
  3. Examine the output of dmesg
Device (s)

Other

System
$ vcgencmd version
Mar 19 2025 18:24:21
Copyright (c) 2012 Broadcom
version ca6e8171a80ea46924ffaa629250bfb482f3a02c (clean) (release) (start)
$ uname -a
Linux comfilepi 6.12.20+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.12.20-1+rpt1~bpo12+1 (2025-03-19) aarch64 GNU/Linux
Logs

dmesg:

[  219.965430] ------------[ cut here ]------------
[  219.965448] WARNING: CPU: 0 PID: 87 at drivers/gpu/drm/vc4/vc4_kms.c:507 vc4_atomic_commit_tail+0x900/0x920 [vc4]
[  219.965523] Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device rfkill binfmt_misc rpi_hevc_dec bcm2835_codec(C) bcm2835_isp(C) bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) vc_sm_cma(C) v4l2_mem2mem videobuf2_dma_contig videobuf2_vmalloc joydev videobuf2_memops videobuf2_v4l2 raspberrypi_hwmon videodev videobuf2_common mc snd_bcm2835(C) raspberrypi_gpiomem nvmem_rmem uio_pdrv_genirq uio i2c_dev ledtrig_pattern fuse dm_mod ip_tables x_tables ipv6 rtc_ds1307 regmap_i2c vc4 v3d gpu_sched snd_soc_hdmi_codec drm_shmem_helper drm_display_helper cec drm_dma_helper drm_kms_helper i2c_brcmstb drm drm_panel_orientation_quirks i2c_bcm2835 snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd backlight
[  219.965789] CPU: 0 UID: 0 PID: 87 Comm: kworker/u20:2 Tainted: G        WC         6.12.20+rpt-rpi-v8 #1  Debian 1:6.12.20-1+rpt1~bpo12+1
[  219.965808] Tainted: [W]=WARN, [C]=CRAP
[  219.965814] Hardware name: Raspberry Pi Compute Module 4S Rev 1.0 (DT)
[  219.965823] Workqueue: events_unbound commit_work [drm_kms_helper]
[  219.965904] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  219.965917] pc : vc4_atomic_commit_tail+0x900/0x920 [vc4]
[  219.965975] lr : vc4_atomic_commit_tail+0x1f4/0x920 [vc4]
[  219.966030] sp : ffffffc08113bd00
[  219.966036] x29: ffffffc08113bd00 x28: 0000000000000000 x27: 0000000000000000
[  219.966057] x26: ffffff8041210080 x25: 0000000000000038 x24: ffffff8044fd5300
[  219.966078] x23: ffffff8041210080 x22: ffffff80410beb00 x21: ffffff804558a000
[  219.966098] x20: 0000000000000006 x19: 0000000001fb00f8 x18: 0000000000000000
[  219.966118] x17: 0000000000000000 x16: ffffffe614a2d010 x15: 00000055b2b10a50
[  219.966139] x14: 0000000000000000 x13: 000000000ee6b280 x12: 0000000480000008
[  219.966159] x11: ffffffc08002d000 x10: 0000000000001a40 x9 : ffffffe614a23c74
[  219.966179] x8 : 0000000000000040 x7 : 000000000ee6b280 x6 : 0ee6b28000000004
[  219.966200] x5 : 0000000000000001 x4 : 0000000000000000 x3 : 0000000000000000
[  219.966219] x2 : ffffff804592a100 x1 : ffffff804592a100 x0 : 00000000ffffffea
[  219.966239] Call trace:
[  219.966245]  vc4_atomic_commit_tail+0x900/0x920 [vc4]
[  219.966301]  commit_tail+0xac/0x1a0 [drm_kms_helper]
[  219.966377]  commit_work+0x1c/0x30 [drm_kms_helper]
[  219.966450]  process_one_work+0x158/0x3d0
[  219.966469]  worker_thread+0x2d8/0x3e8
[  219.966483]  kthread+0x11c/0x128
[  219.966494]  ret_from_fork+0x10/0x20
[  219.966508] ---[ end trace 0000000000000000 ]---
[  219.966645] ------------[ cut here ]------------
[  219.966655] WARNING: CPU: 0 PID: 87 at drivers/gpu/drm/vc4/vc4_kms.c:508 vc4_atomic_commit_tail+0x864/0x920 [vc4]
[  219.966722] Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device rfkill binfmt_misc rpi_hevc_dec bcm2835_codec(C) bcm2835_isp(C) bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) vc_sm_cma(C) v4l2_mem2mem videobuf2_dma_contig videobuf2_vmalloc joydev videobuf2_memops videobuf2_v4l2 raspberrypi_hwmon videodev videobuf2_common mc snd_bcm2835(C) raspberrypi_gpiomem nvmem_rmem uio_pdrv_genirq uio i2c_dev ledtrig_pattern fuse dm_mod ip_tables x_tables ipv6 rtc_ds1307 regmap_i2c vc4 v3d gpu_sched snd_soc_hdmi_codec drm_shmem_helper drm_display_helper cec drm_dma_helper drm_kms_helper i2c_brcmstb drm drm_panel_orientation_quirks i2c_bcm2835 snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd backlight
[  219.966981] CPU: 0 UID: 0 PID: 87 Comm: kworker/u20:2 Tainted: G        WC         6.12.20+rpt-rpi-v8 #1  Debian 1:6.12.20-1+rpt1~bpo12+1
[  219.966998] Tainted: [W]=WARN, [C]=CRAP
[  219.967004] Hardware name: Raspberry Pi Compute Module 4S Rev 1.0 (DT)
[  219.967012] Workqueue: events_unbound commit_work [drm_kms_helper]
[  219.967094] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  219.967106] pc : vc4_atomic_commit_tail+0x864/0x920 [vc4]
[  219.967165] lr : vc4_atomic_commit_tail+0x204/0x920 [vc4]
[  219.967220] sp : ffffffc08113bd00
[  219.967226] x29: ffffffc08113bd00 x28: 0000000000000000 x27: 0000000000000000
[  219.967247] x26: ffffff8041210080 x25: 0000000000000038 x24: ffffff8044fd5300
[  219.967268] x23: ffffff8041210080 x22: ffffff80410beb00 x21: ffffff804558a000
[  219.967288] x20: 0000000000000006 x19: 0000000001fb00f8 x18: 0000000000000000
[  219.967309] x17: 0000000000000000 x16: ffffffe614a2d010 x15: 00000055b2b10a50
[  219.967329] x14: 0000000000000000 x13: 000000000ee6b280 x12: 0000000480000008
[  219.967350] x11: ffffffc08002d000 x10: 0000000000001a40 x9 : ffffffe614a23c74
[  219.967370] x8 : 0000000000000040 x7 : 000000000ee6b280 x6 : 0ee6b28000000004
[  219.967390] x5 : 0000000000000001 x4 : 0000000000000000 x3 : 0000000000000000
[  219.967409] x2 : ffffff804592a100 x1 : ffffff804592a100 x0 : 00000000ffffffea
[  219.967429] Call trace:
[  219.967435]  vc4_atomic_commit_tail+0x864/0x920 [vc4]
[  219.967492]  commit_tail+0xac/0x1a0 [drm_kms_helper]
[  219.967568]  commit_work+0x1c/0x30 [drm_kms_helper]
[  219.967641]  process_one_work+0x158/0x3d0
[  219.967657]  worker_thread+0x2d8/0x3e8
[  219.967671]  kthread+0x11c/0x128
[  219.967684]  ret_from_fork+0x10/0x20
[  219.967697] ---[ end trace 0000000000000000 ]---
[  220.958520] ------------[ cut here ]------------
[  220.958543] WARNING: CPU: 3 PID: 87 at drivers/gpu/drm/vc4/vc4_kms.c:453 vc4_atomic_commit_tail+0x8f8/0x920 [vc4]
[  220.958630] Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device rfkill binfmt_misc rpi_hevc_dec bcm2835_codec(C) bcm2835_isp(C) bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) vc_sm_cma(C) v4l2_mem2mem videobuf2_dma_contig videobuf2_vmalloc joydev videobuf2_memops videobuf2_v4l2 raspberrypi_hwmon videodev videobuf2_common mc snd_bcm2835(C) raspberrypi_gpiomem nvmem_rmem uio_pdrv_genirq uio i2c_dev ledtrig_pattern fuse dm_mod ip_tables x_tables ipv6 rtc_ds1307 regmap_i2c vc4 v3d gpu_sched snd_soc_hdmi_codec drm_shmem_helper drm_display_helper cec drm_dma_helper drm_kms_helper i2c_brcmstb drm drm_panel_orientation_quirks i2c_bcm2835 snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd backlight
[  220.958903] CPU: 3 UID: 0 PID: 87 Comm: kworker/u20:2 Tainted: G        WC         6.12.20+rpt-rpi-v8 #1  Debian 1:6.12.20-1+rpt1~bpo12+1
[  220.958922] Tainted: [W]=WARN, [C]=CRAP
[  220.958928] Hardware name: Raspberry Pi Compute Module 4S Rev 1.0 (DT)
[  220.958937] Workqueue: events_unbound commit_work [drm_kms_helper]
[  220.959029] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  220.959041] pc : vc4_atomic_commit_tail+0x8f8/0x920 [vc4]
[  220.959100] lr : vc4_atomic_commit_tail+0x394/0x920 [vc4]
[  220.959156] sp : ffffffc08113bd00
[  220.959162] x29: ffffffc08113bd00 x28: 0000000000000000 x27: 0000000000000000
[  220.959184] x26: ffffff80410beb70 x25: ffffff80410beb00 x24: ffffff8044fd53c0
[  220.959205] x23: ffffff8041210080 x22: ffffff80410be680 x21: ffffff804558a000
[  220.959225] x20: 000000001dcd6500 x19: ffffff80410be200 x18: 0000000000000000
[  220.959246] x17: 0000000000000000 x16: ffffffe614a2d010 x15: 0000000000000000
[  220.959267] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000001
[  220.959286] x11: ffffff807fbbecc0 x10: 0000000000001a40 x9 : ffffffe614a23c74
[  220.959307] x8 : ffffffe60456b000 x7 : 0000000000000000 x6 : ffffff804592a100
[  220.959327] x5 : ffffff804592a100 x4 : 0000000000000000 x3 : 0000000000000000
[  220.959346] x2 : ffffff804592a100 x1 : ffffff804592a100 x0 : 00000000ffffffea
[  220.959366] Call trace:
[  220.959374]  vc4_atomic_commit_tail+0x8f8/0x920 [vc4]
[  220.959431]  commit_tail+0xac/0x1a0 [drm_kms_helper]
[  220.959506]  commit_work+0x1c/0x30 [drm_kms_helper]
[  220.959580]  process_one_work+0x158/0x3d0
[  220.959599]  worker_thread+0x2d8/0x3e8
[  220.959613]  kthread+0x11c/0x128
[  220.959626]  ret_from_fork+0x10/0x20
[  220.959640] ---[ end trace 0000000000000000 ]---
[  220.959695] ------------[ cut here ]------------
[  220.959700] WARNING: CPU: 3 PID: 87 at drivers/gpu/drm/vc4/vc4_kms.c:454 vc4_atomic_commit_tail+0x3a8/0x920 [vc4]
[  220.959763] Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device rfkill binfmt_misc rpi_hevc_dec bcm2835_codec(C) bcm2835_isp(C) bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) vc_sm_cma(C) v4l2_mem2mem videobuf2_dma_contig videobuf2_vmalloc joydev videobuf2_memops videobuf2_v4l2 raspberrypi_hwmon videodev videobuf2_common mc snd_bcm2835(C) raspberrypi_gpiomem nvmem_rmem uio_pdrv_genirq uio i2c_dev ledtrig_pattern fuse dm_mod ip_tables x_tables ipv6 rtc_ds1307 regmap_i2c vc4 v3d gpu_sched snd_soc_hdmi_codec drm_shmem_helper drm_display_helper cec drm_dma_helper drm_kms_helper i2c_brcmstb drm drm_panel_orientation_quirks i2c_bcm2835 snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd backlight
[  220.960018] CPU: 3 UID: 0 PID: 87 Comm: kworker/u20:2 Tainted: G        WC         6.12.20+rpt-rpi-v8 #1  Debian 1:6.12.20-1+rpt1~bpo12+1
[  220.960034] Tainted: [W]=WARN, [C]=CRAP
[  220.960040] Hardware name: Raspberry Pi Compute Module 4S Rev 1.0 (DT)
[  220.960047] Workqueue: events_unbound commit_work [drm_kms_helper]
[  220.960127] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  220.960139] pc : vc4_atomic_commit_tail+0x3a8/0x920 [vc4]
[  220.960196] lr : vc4_atomic_commit_tail+0x3a4/0x920 [vc4]
[  220.960251] sp : ffffffc08113bd00
[  220.960257] x29: ffffffc08113bd00 x28: 0000000000000000 x27: 0000000000000000
[  220.960277] x26: ffffff80410beb70 x25: ffffff80410beb00 x24: ffffff8044fd53c0
[  220.960298] x23: ffffff8041210080 x22: ffffff80410be680 x21: ffffff804558a000
[  220.960318] x20: 000000001dcd6500 x19: ffffff80410be200 x18: 0000000000000000
[  220.960339] x17: 0000000000000000 x16: ffffffe614a2d010 x15: 0000000000000000
[  220.960360] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000001
[  220.960380] x11: ffffff807fbbecc0 x10: 0000000000001a40 x9 : ffffffe614a23c74
[  220.960401] x8 : ffffffe60456b000 x7 : 0000000000000000 x6 : ffffff804592a100
[  220.960421] x5 : ffffff804592a100 x4 : 0000000000000000 x3 : 0000000000000000
[  220.960440] x2 : ffffff804592a100 x1 : ffffff804592a100 x0 : 00000000ffffffea
[  220.960460] Call trace:
[  220.960466]  vc4_atomic_commit_tail+0x3a8/0x920 [vc4]
[  220.960521]  commit_tail+0xac/0x1a0 [drm_kms_helper]
[  220.960596]  commit_work+0x1c/0x30 [drm_kms_helper]
[  220.960670]  process_one_work+0x158/0x3d0
[  220.960685]  worker_thread+0x2d8/0x3e8
[  220.960698]  kthread+0x11c/0x128
[  220.960709]  ret_from_fork+0x10/0x20
[  220.960721] ---[ end trace 0000000000000000 ]---
[  220.964396] ------------[ cut here ]------------
[  220.964411] WARNING: CPU: 3 PID: 87 at drivers/gpu/drm/vc4/vc4_kms.c:507 vc4_atomic_commit_tail+0x900/0x920 [vc4]
[  220.964482] Modules linked in: snd_seq_dummy snd_hrtimer snd_seq snd_seq_device rfkill binfmt_misc rpi_hevc_dec bcm2835_codec(C) bcm2835_isp(C) bcm2835_v4l2(C) bcm2835_mmal_vchiq(C) vc_sm_cma(C) v4l2_mem2mem videobuf2_dma_contig videobuf2_vmalloc joydev videobuf2_memops videobuf2_v4l2 raspberrypi_hwmon videodev videobuf2_common mc snd_bcm2835(C) raspberrypi_gpiomem nvmem_rmem uio_pdrv_genirq uio i2c_dev ledtrig_pattern fuse dm_mod ip_tables x_tables ipv6 rtc_ds1307 regmap_i2c vc4 v3d gpu_sched snd_soc_hdmi_codec drm_shmem_helper drm_display_helper cec drm_dma_helper drm_kms_helper i2c_brcmstb drm drm_panel_orientation_quirks i2c_bcm2835 snd_soc_core snd_compress snd_pcm_dmaengine snd_pcm snd_timer snd backlight
[  220.964745] CPU: 3 UID: 0 PID: 87 Comm: kworker/u20:2 Tainted: G        WC         6.12.20+rpt-rpi-v8 #1  Debian 1:6.12.20-1+rpt1~bpo12+1
[  220.964763] Tainted: [W]=WARN, [C]=CRAP
[  220.964770] Hardware name: Raspberry Pi Compute Module 4S Rev 1.0 (DT)
[  220.964778] Workqueue: events_unbound commit_work [drm_kms_helper]
[  220.964859] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  220.964871] pc : vc4_atomic_commit_tail+0x900/0x920 [vc4]
[  220.964930] lr : vc4_atomic_commit_tail+0x1f4/0x920 [vc4]
[  220.964985] sp : ffffffc08113bd00
[  220.964991] x29: ffffffc08113bd00 x28: 0000000000000000 x27: 0000000000000000
[  220.965012] x26: ffffff8041210080 x25: 0000000000000038 x24: ffffff8044fd53c0
[  220.965033] x23: ffffff8041210080 x22: ffffff80410be680 x21: ffffff804558a000
[  220.965053] x20: 0000000000000006 x19: 0000000001fb00f8 x18: 0000000000000000
[  220.965074] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[  220.965094] x14: 0000000000000000 x13: 000000000ee6b280 x12: 0000000480000008
[  220.965114] x11: ffffffc08002d000 x10: 0000000000001a40 x9 : ffffffe614a23c74
[  220.965135] x8 : 0000000000000040 x7 : 000000000ee6b280 x6 : 0ee6b28000000004
[  220.965155] x5 : 0000000000000001 x4 : 0000000000000000 x3 : 0000000000000000
[  220.965174] x2 : ffffff804592a100 x1 : ffffff804592a100 x0 : 00000000ffffffea
[  220.965194] Call trace:
[  220.965201]  vc4_atomic_commit_tail+0x900/0x920 [vc4]
[  220.965257]  commit_tail+0xac/0x1a0 [drm_kms_helper]
[  220.965333]  commit_work+0x1c/0x30 [drm_kms_helper]
[  220.965407]  process_one_work+0x158/0x3d0
[  220.965423]  worker_thread+0x2d8/0x3e8
[  220.965437]  kthread+0x11c/0x128
[  220.965449]  ret_from_fork+0x10/0x20
[  220.965463] ---[ end trace 0000000000000000 ]---

{ More of the same} 

Additional context

The problems seems to only occur on a CM4S. I don't see the issue on a CM3+ or CM4.

I don't notice any behavioral anomalies. Everything seems to work fine. The logs are just getting flooded repeatedly with the aforementioned kernel warning.

config.txt

hdmi_group=2
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0

dtparam=i2c_arm=on
dtoverlay=i2c-rtc,ds3231

enable_uart=1
core_freq=250
dtoverlay=uart1,txd1_pin=32,rxd1_pin=33

dtparam=audio=on
dtoverlay=audremap,pins_40_41

otg_mode=1

gpio=31=op,np,dh
gpio=34=op,np,dh
gpio=4-13=ip
gpio=16=ip
gpio=17-27=op,np,dl
gpio=37-39=op,np,dh

dtoverlay=vc4-kms-v3d,noaudio

auto_initramfs=1

disable_fw_kms_setup=1

disable_splash=1
avoid_warnings=1
Dominant language
C
Stars
13.2k
Forks
5.5k
Avg merge
2d 21h
Merged PRs (30d)
21

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from raspberrypi/linux

All issues in raspberrypi/linux

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.