Bug 109320 - Encoder .compute_config() fails to propagate EDEADLK from mst code
Summary: Encoder .compute_config() fails to propagate EDEADLK from mst code
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Lyude Paul
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-11 20:54 UTC by Ville Syrjala
Modified: 2019-02-19 11:18 UTC (History)
1 user (show)

See Also:
i915 platform: ALL
i915 features: display/atomic, display/DP MST


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ville Syrjala 2019-01-11 20:54:58 UTC
[ 4544.317535] [drm:drm_dp_mst_topology_try_get_port [drm_kms_helper]] port 000000001f1f22c1 (2)
[ 4544.317546] [drm:drm_dp_mst_topology_put_port [drm_kms_helper]] port 000000001f1f22c1 (1)
[ 4544.317585] [drm:intel_dp_mst_compute_config [i915]] failed finding vcpi slots:-35
[ 4544.317624] [drm:intel_atomic_check [i915]] Encoder config failure
[ 4544.317654] [drm:intel_dump_pipe_config [i915]] [CRTC:83:pipe C][failed]
[ 4544.317694] [drm:intel_dump_pipe_config [i915]] output_types: DP_MST (0x800)
[ 4544.317726] [drm:intel_dump_pipe_config [i915]] output format: RGB
[ 4544.317765] [drm:intel_dump_pipe_config [i915]] cpu_transcoder: C, pipe bpp: 24, dithering: 0
[ 4544.317798] [drm:intel_dump_pipe_config [i915]] dp m_n: lanes: 4; gmch_m: 0, gmch_n: 0, link_m: 0, link_n: 0, tu: 0
[ 4544.317833] [drm:intel_dump_pipe_config [i915]] audio: 0, infoframes: 0
[ 4544.317863] [drm:intel_dump_pipe_config [i915]] requested mode:
[ 4544.317891] [drm:drm_mode_debug_printmodeline [drm]] Modeline 0:"" 0 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x0 0x9
[ 4544.317919] [drm:intel_dump_pipe_config [i915]] adjusted mode:
[ 4544.317945] [drm:drm_mode_debug_printmodeline [drm]] Modeline 0:"" 0 154000 1920 1968 2000 2080 1200 1203 1209 1235 0x0 0x9
[ 4544.317979] [drm:intel_dump_pipe_config [i915]] crtc timings: 154000 1920 1968 2000 2080 1200 1203 1209 1235, type: 0x0 flags: 0x9
[ 4544.318014] [drm:intel_dump_pipe_config [i915]] port clock: 540000, pipe src size: 1920x1200, pixel rate 0
[ 4544.318042] [drm:intel_dump_pipe_config [i915]] num_scalers: 1, scaler_users: 0x0, scaler_id: -1
[ 4544.318093] [drm:intel_dump_pipe_config [i915]] pch pfit: pos: 0x00000000, size: 0x00000000, disabled
[ 4544.318129] [drm:intel_dump_pipe_config [i915]] ips: 0, double wide: 0
[ 4544.318156] [drm:intel_dump_pipe_config [i915]] dpll_hw_state: ctrl1: 0x1, cfgcr1: 0x0, cfgcr2: 0x0
[ 4544.318190] [drm:intel_dump_pipe_config [i915]] planes on this crtc
[ 4544.318223] [drm:intel_dump_pipe_config [i915]] [PLANE:66:plane 1C] FB:211, fb = 1920x1200 format = XR24 little-endian (0x34325258)
[ 4544.318260] [drm:intel_dump_pipe_config [i915]]      scaler:-1 src 0x0+1920+1200 dst 0x0+1920+1200
[ 4544.318291] [drm:intel_dump_pipe_config [i915]] [PLANE:73:plane 2C] disabled, scaler_id = -1
[ 4544.318324] [drm:intel_dump_pipe_config [i915]] [PLANE:80:cursor C] disabled, scaler_id = -1
[ 4544.318345] [drm:drm_atomic_check_only [drm]] atomic driver check for 00000000115dac98 failed: -22
[ 4544.318369] [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 00000000115dac98
[ 4544.318386] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 124 (15)
[ 4544.318404] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 124 (14)
[ 4544.318426] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 217 (7)
[ 4544.318442] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 207 (7)
[ 4544.318459] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 211 (7)
[ 4544.318493] [drm:__drm_atomic_state_free [drm]] Freeing atomic state 00000000115dac98
[ 4544.318531] WARNING: CPU: 3 PID: 1101 at ../drivers/gpu/drm/drm_modeset_lock.c:228 drm_modeset_drop_locks+0x35/0x40 [drm]
[ 4544.318537] Modules linked in: mousedev fuse netconsole i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops prime_numbers drm intel_gtt agpgart nls_iso8859_1 nls_cp437 vfat fat efi_pstore coretemp hwmon intel_rapl x86_pkg_temp_thermal efivars e1000e ptp pps_core video evdev ip_tables x_tables ipv6 autofs4
[ 4544.318565] CPU: 3 PID: 1101 Comm: Xorg Tainted: G        W         5.0.0-rc1-skl+ #1495
[ 4544.318570] Hardware name: GIGABYTE GB-BKi7(H)A-7500/MFLP7AP-00, BIOS F4 02/20/2017
[ 4544.318586] RIP: 0010:drm_modeset_drop_locks+0x35/0x40 [drm]
[ 4544.318592] Code: 29 48 8b 43 60 48 8d 6b 60 48 39 c5 74 19 48 8b 43 60 48 8d b8 70 ff ff ff e8 87 ff ff ff 48 8b 43 60 48 39 c5 75 e7 5b 5d c3 <0f> 0b eb d3 0f 1f 80 00 00 00 00 41 56 41 55 41 54 55 53 48 8b 6f
[ 4544.318597] RSP: 0018:ffffc90000493c00 EFLAGS: 00010286
[ 4544.318604] RAX: 00000000ffffffea RBX: ffffc90000493c20 RCX: 00000000000babf3
[ 4544.318609] RDX: 00000000000babeb RSI: ffff88845dba4a10 RDI: ffffc90000493c20
[ 4544.318614] RBP: ffff88845bc82e00 R08: 0000000000000000 R09: 0000000000000000
[ 4544.318619] R10: 0000000000000000 R11: 0000000000000000 R12: ffff888449a72828
[ 4544.318624] R13: 0000000000000003 R14: ffff888449a72800 R15: ffffffffa01c5ee8
[ 4544.318629] FS:  00007f12a3e36a40(0000) GS:ffff88845db80000(0000) knlGS:0000000000000000
[ 4544.318633] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 4544.318638] CR2: 00007fbf4ca19000 CR3: 0000000449ab4004 CR4: 00000000003606e0
[ 4544.318643] Call Trace:
[ 4544.318662]  set_property_atomic+0xd0/0x140 [drm]
[ 4544.318681]  drm_mode_obj_set_property_ioctl+0x10f/0x1d0 [drm]
[ 4544.318699]  ? drm_connector_set_obj_prop+0x70/0x70 [drm]
[ 4544.318716]  drm_connector_property_set_ioctl+0x39/0x60 [drm]
[ 4544.318731]  drm_ioctl_kernel+0x81/0xf0 [drm]
[ 4544.318747]  drm_ioctl+0x2f3/0x3b0 [drm]
[ 4544.318764]  ? drm_connector_set_obj_prop+0x70/0x70 [drm]
[ 4544.318774]  ? lock_acquire+0x90/0x1a0
[ 4544.318780]  do_vfs_ioctl+0xa0/0x6e0
[ 4544.318788]  ? __fget+0xfc/0x1e0
[ 4544.318794]  ksys_ioctl+0x35/0x60
[ 4544.318800]  __x64_sys_ioctl+0x11/0x20
[ 4544.318806]  do_syscall_64+0x4b/0x180
[ 4544.318815]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[ 4544.318821] RIP: 0033:0x7f12a183d587
[ 4544.318827] Code: 00 00 00 48 8b 05 11 29 2c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d e1 28 2c 00 f7 d8 64 89 01 48
[ 4544.318832] RSP: 002b:00007fff53fc4138 EFLAGS: 00003246 ORIG_RAX: 0000000000000010
[ 4544.318839] RAX: ffffffffffffffda RBX: 000055bedcf5a940 RCX: 00007f12a183d587
[ 4544.318844] RDX: 00007fff53fc4170 RSI: 00000000c01064ab RDI: 000000000000000d
[ 4544.318849] RBP: 00007fff53fc4170 R08: 0000000000000001 R09: 0000000000000000
[ 4544.318853] R10: 0000000000000004 R11: 0000000000003246 R12: 00000000c01064ab
[ 4544.318859] R13: 000000000000000d R14: 0000000000000001 R15: 00007f12a3d9d000
[ 4544.318864] irq event stamp: 28610762
[ 4544.318872] hardirqs last  enabled at (28610761): [<ffffffff81228a09>] kfree+0xb9/0x270
[ 4544.318878] hardirqs last disabled at (28610762): [<ffffffff81001951>] trace_hardirqs_off_thunk+0x1a/0x1c
[ 4544.318884] softirqs last  enabled at (28610734): [<ffffffff81a0033a>] __do_softirq+0x33a/0x4b9
[ 4544.318891] softirqs last disabled at (28610717): [<ffffffff810b3441>] irq_exit+0xd1/0xe0
[ 4544.318911] WARNING: CPU: 3 PID: 1101 at ../drivers/gpu/drm/drm_modeset_lock.c:228 drm_modeset_drop_locks+0x35/0x40 [drm]
[ 4544.318918] ---[ end trace 530123a439442cdf ]---

Maybe caused by the recent MST changes? Not sure.

The fix likely involves making encoder .compute_config() return an int so that we can progagate the EDEADLK up the chain.
Comment 1 Lyude Paul 2019-01-14 17:28:50 UTC
I can handle this one, since I'm fairly sure this is from my MST changes that I pushed recently
Comment 2 Lyude Paul 2019-01-14 22:34:07 UTC
Patches at https://patchwork.freedesktop.org/patch/277359/
Comment 3 Lyude Paul 2019-01-15 21:33:01 UTC
Pushed the fix, so this bug should be fixed now: https://cgit.freedesktop.org/drm-tip/commit/?id=96550555a78ca3c9fda4b358549a5622810fe32c
Comment 4 Lakshmi 2019-02-19 11:18:17 UTC
Closing this bug as fixed.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.