[PATCH v5 0/7] drm/mgag200: Implement VBLANK support
Tony Luck
tony.luck at intel.com
Tue Oct 1 22:41:25 UTC 2024
My system threw out a bunch of stack traces while booting
v6.12-rc1 and hung.
First of these looks like this:
[ 33.639799] fbcon: mgag200drmfb (fb0) is primary device
[ 33.651573] ixgbe 0000:03:00.0: Intel(R) 10 Gigabit Network Connection
[ 33.652092] ixgbe 0000:03:00.1: enabling device (0100 -> 0102)
[ 33.818328] ------------[ cut here ]------------
[ 33.818362] [CRTC:34:crtc-0] vblank wait timed out
[ 33.818422] WARNING: CPU: 44 PID: 1815 at drivers/gpu/drm/drm_atomic_helper.c:1682 drm_atomic_helper_wait_for_vblanks.part.0+0x245/0x250 [drm_kms_helper]
[ 33.818447] Modules linked in: crct10dif_pclmul mgag200(+) crc32_pclmul i2c_algo_bit crc32c_intel drm_shmem_helper ghash_clmulni_intel sha512_ssse3 drm_kms_helper sha256_ssse3 sha1_ssse3 ixgbe(+) mpt3sas mdio drm raid_class dca scsi_transport_sas wmi fuse
[ 33.818475] CPU: 44 PID: 1815 Comm: systemd-udevd Not tainted 6.10.0-rc1+ #168
[ 33.818478] Hardware name: Intel Corporation BRICKLAND/BRICKLAND, BIOS BRBDXSD1.86B.0338.V01.1603162127 03/16/2016
[ 33.818481] RIP: 0010:drm_atomic_helper_wait_for_vblanks.part.0+0x245/0x250 [drm_kms_helper]
[ 33.818490] Code: 00 48 8d 7b 08 e8 2b 7e 61 da 45 85 ff 0f 85 d3 fe ff ff 49 8b 56 20 41 8b b6 d8 00 00 00 48 c7 c7 38 52 ba c0 e8 8b 53 59 da <0f> 0b e9 b5 fe ff ff 0f 1f 40 00 90 90 90 90 90 90 90 90 90 90 90
[ 33.818493] RSP: 0018:ffffbf61a3faf690 EFLAGS: 00010282
[ 33.818496] RAX: 0000000000000026 RBX: ffff99be04ad3028 RCX: 0000000000000000
[ 33.818499] RDX: 0000000000000002 RSI: ffffffff9c9fd7c8 RDI: 00000000ffffffff
[ 33.818501] RBP: ffff99be08a76c00 R08: 0000000000000001 R09: 0000000000000000
[ 33.818503] R10: 0000000000000001 R11: ffff99f1011fffe8 R12: 0000000000000000
[ 33.818504] R13: 0000000000000000 R14: ffff99be0bcf93f8 R15: 0000000000000000
[ 33.818506] FS: 00007fbe18e7db40(0000) GS:ffff99ca61c00000(0000) knlGS:0000000000000000
[ 33.818509] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 33.818510] CR2: 000055b77636c1f8 CR3: 000000000e486004 CR4: 00000000003706f0
[ 33.818513] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 33.818514] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 33.818516] Call Trace:
[ 33.818519] <TASK>
[ 33.818521] ? __warn+0x8b/0x190
[ 33.818535] ? drm_atomic_helper_wait_for_vblanks.part.0+0x245/0x250 [drm_kms_helper]
[ 33.818545] ? report_bug+0x1c3/0x1d0
[ 33.818559] ? handle_bug+0x42/0x70
[ 33.818571] ? exc_invalid_op+0x14/0x70
[ 33.818575] ? asm_exc_invalid_op+0x16/0x20
[ 33.818589] ? drm_atomic_helper_wait_for_vblanks.part.0+0x245/0x250 [drm_kms_helper]
[ 33.818602] ? __pfx_autoremove_wake_function+0x10/0x10
[ 33.818614] drm_atomic_helper_commit_tail+0x71/0x80 [drm_kms_helper]
[ 33.818625] mgag200_mode_config_helper_atomic_commit_tail+0x28/0x40 [mgag200]
[ 33.818633] commit_tail+0x94/0x130 [drm_kms_helper]
[ 33.818644] drm_atomic_helper_commit+0x13e/0x170 [drm_kms_helper]
[ 33.818655] drm_atomic_commit+0x97/0xb0 [drm]
[ 33.818717] ? __pfx___drm_printfn_info+0x10/0x10 [drm]
[ 33.818750] drm_client_modeset_commit_atomic+0x207/0x250 [drm]
[ 33.818783] drm_client_modeset_commit_locked+0x5b/0x190 [drm]
[ 33.818807] drm_client_modeset_commit+0x24/0x50 [drm]
[ 33.818829] __drm_fb_helper_restore_fbdev_mode_unlocked+0x92/0xc0 [drm_kms_helper]
[ 33.818841] drm_fb_helper_set_par+0x2e/0x40 [drm_kms_helper]
[ 33.818850] fbcon_init+0x2a8/0x560
[ 33.818860] visual_init+0xc4/0x120
[ 33.818867] do_bind_con_driver.isra.0+0x1a1/0x3d0
[ 33.818875] do_take_over_console+0x10b/0x1a0
[ 33.818880] do_fbcon_takeover+0x5c/0xc0
[ 33.818883] fbcon_fb_registered+0x49/0x70
[ 33.818886] register_framebuffer+0x190/0x250
[ 33.818896] __drm_fb_helper_initial_config_and_unlock+0x345/0x590 [drm_kms_helper]
[ 33.818906] ? drm_client_register+0x33/0xc0 [drm]
[ 33.818934] drm_fbdev_shmem_client_hotplug+0x6c/0xc0 [drm_shmem_helper]
[ 33.818939] drm_client_register+0x7b/0xc0 [drm]
[ 33.818963] mgag200_pci_probe+0x90/0x180 [mgag200]
[ 33.818970] local_pci_probe+0x46/0xa0
[ 33.818978] pci_device_probe+0xb5/0x230
[ 33.818986] really_probe+0xd9/0x380
[ 33.818993] __driver_probe_device+0x78/0x150
[ 33.818997] driver_probe_device+0x1e/0x90
[ 33.819000] __driver_attach+0xd6/0x1d0
[ 33.819003] ? __pfx___driver_attach+0x10/0x10
[ 33.819005] bus_for_each_dev+0x66/0xa0
[ 33.819012] bus_add_driver+0x111/0x240
[ 33.819018] driver_register+0x5c/0x120
[ 33.819021] ? __pfx_mgag200_pci_driver_init+0x10/0x10 [mgag200]
[ 33.819026] do_one_initcall+0x62/0x3a0
[ 33.819035] ? kmalloc_trace_noprof+0x2a0/0x340
[ 33.819048] do_init_module+0x64/0x240
[ 33.819058] init_module_from_file+0x7a/0xa0
[ 33.819072] idempotent_init_module+0x15a/0x210
[ 33.819079] ? __startup_64+0x70/0x3f0
[ 33.819086] __x64_sys_finit_module+0x5a/0xb0
[ 33.819092] do_syscall_64+0x73/0x190
[ 33.819098] entry_SYSCALL_64_after_hwframe+0x76/0x7e
I peeked at changes to this driver between v6.11 and v6.12-rc1 and saw
this set:
$ git log --oneline linus ^v6.11 -- drivers/gpu/drm/mgag200
219b45d023ed drm/mgag200: Remove BMC output
0f9ff361ad82 drm/mgag200: vga-bmc: Control BMC scanout from encoder
9d09cac47de5 drm/mgag200: vga-bmc: Control CRTC VIDRST flag from encoder
dc06efbb7934 drm/mgag200: vga-bmc: Transparently handle BMC
f5510726608f drm/mgag200: Add VGA-BMC output
6c9e14ee9f51 drm/mgag200: Fix VBLANK interrupt handling
d5070c9b2944 drm/mgag200: Implement struct drm_crtc_funcs.get_vblank_timestamp
89c6ea2006e2 drm/mgag200: Add vblank support
5cd522b5331b drm/mgag200: Add dedicted variable for <linecomp> field
d6460bd52c27 drm/mgag200: Add dedicated variables for blanking fields
e8f834b55962 drm/mgag200: Use adjusted mode values for CRTCs
b345b3542d66 drm/mgag200: Align register field names with documentation
754c9129b949 drm/mgag200: Use hexadecimal register indeces
3ac9384061b2 drm/mgag200: Rename BMC vidrst names
7bb97cf91588 drm/mgag200: Remove vidrst callbacks from struct mgag200_device_funcs
cd3a2e8b0a03 drm/mgag200: Only set VIDRST bits in CRTC modesetting
I tried a mini-bisct across these changes and found the system boots
normally with:
5cd522b5331b drm/mgag200: Add dedicted variable for <linecomp> field
and fails with:
89c6ea2006e2 drm/mgag200: Add vblank support
I do see that there is a subsequent "Fix VBLANK" patch, but it appears
that whatever it fixed didn't help on my system.
-Tony
More information about the dri-devel
mailing list