All of lore.kernel.org
 help / color / mirror / Atom feed
* Xorg indefinitely hangs in kernelspace
@ 2019-08-06 18:00 Jaak Ristioja
  2019-09-05  7:14   ` Gerd Hoffmann
  2019-09-05  7:14 ` Gerd Hoffmann
  0 siblings, 2 replies; 22+ messages in thread
From: Jaak Ristioja @ 2019-08-06 18:00 UTC (permalink / raw)
  To: Dave Airlie, Gerd Hoffmann, David Airlie, Daniel Vetter,
	virtualization, spice-devel, dri-devel, linux-kernel

Hello!

I'm writing to report a crash in the QXL / DRM code in the Linux kernel.
I originally filed the issue on LaunchPad and more details can be found
there, although I doubt whether these details are useful.

  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1813620

I first experienced these issues with:

* Ubuntu 18.04 (probably kernel 4.15.something)
* Ubuntu 18.10 (kernel 4.18.0-13)
* Ubuntu 19.04 (kernel 5.0.0-13-generic)
* Ubuntu 19.04 (mainline kernel 5.1-rc7)
* Ubuntu 19.04 (mainline kernel 5.2.0-050200rc1-generic)

Here is the crash output from dmesg:

[354073.713350] INFO: task Xorg:920 blocked for more than 120 seconds.
[354073.717755]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354073.722277] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354073.738332] Xorg            D    0   920    854 0x00404004
[354073.738334] Call Trace:
[354073.738340]  __schedule+0x2ba/0x650
[354073.738342]  schedule+0x2d/0x90
[354073.738343]  schedule_preempt_disabled+0xe/0x10
[354073.738345]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354073.738346]  __ww_mutex_lock_slowpath+0x16/0x20
[354073.738347]  ww_mutex_lock+0x34/0x50
[354073.738352]  ttm_eu_reserve_buffers+0x1f9/0x2e0 [ttm]
[354073.738356]  qxl_release_reserve_list+0x67/0x150 [qxl]
[354073.738358]  ? qxl_bo_pin+0xaa/0x190 [qxl]
[354073.738359]  qxl_cursor_atomic_update+0x1b0/0x2e0 [qxl]
[354073.738367]  drm_atomic_helper_commit_planes+0xb9/0x220 [drm_kms_helper]
[354073.738371]  drm_atomic_helper_commit_tail+0x2b/0x70 [drm_kms_helper]
[354073.738374]  commit_tail+0x67/0x70 [drm_kms_helper]
[354073.738378]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
[354073.738390]  drm_atomic_commit+0x4a/0x50 [drm]
[354073.738394]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
[354073.738402]  __setplane_atomic+0xd3/0x120 [drm]
[354073.738410]  drm_mode_cursor_universal+0x142/0x270 [drm]
[354073.738418]  drm_mode_cursor_common+0xcb/0x220 [drm]
[354073.738425]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354073.738432]  drm_mode_cursor2_ioctl+0xe/0x10 [drm]
[354073.738438]  drm_ioctl_kernel+0xb0/0x100 [drm]
[354073.738440]  ? ___sys_recvmsg+0x16c/0x200
[354073.738445]  drm_ioctl+0x233/0x410 [drm]
[354073.738452]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354073.738454]  ? timerqueue_add+0x57/0x90
[354073.738456]  ? enqueue_hrtimer+0x3c/0x90
[354073.738458]  do_vfs_ioctl+0xa9/0x640
[354073.738459]  ? fput+0x13/0x20
[354073.738461]  ? __sys_recvmsg+0x88/0xa0
[354073.738462]  ksys_ioctl+0x67/0x90
[354073.738463]  __x64_sys_ioctl+0x1a/0x20
[354073.738465]  do_syscall_64+0x5a/0x140
[354073.738467]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[354073.738468] RIP: 0033:0x7ffad14d3417
[354073.738472] Code: Bad RIP value.
[354073.738472] RSP: 002b:00007ffdd5679978 EFLAGS: 00003246 ORIG_RAX:
0000000000000010
[354073.738473] RAX: ffffffffffffffda RBX: 000056428a474610 RCX:
00007ffad14d3417
[354073.738474] RDX: 00007ffdd56799b0 RSI: 00000000c02464bb RDI:
000000000000000e
[354073.738474] RBP: 00007ffdd56799b0 R08: 0000000000000040 R09:
0000000000000010
[354073.738475] R10: 000000000000003f R11: 0000000000003246 R12:
00000000c02464bb
[354073.738475] R13: 000000000000000e R14: 0000000000000000 R15:
000056428a4721d0
[354073.738511] INFO: task kworker/1:0:27625 blocked for more than 120
seconds.
[354073.745154]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354073.751900] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354073.762197] kworker/1:0     D    0 27625      2 0x80004000
[354073.762205] Workqueue: events qxl_client_monitors_config_work_func [qxl]
[354073.762206] Call Trace:
[354073.762211]  __schedule+0x2ba/0x650
[354073.762214]  schedule+0x2d/0x90
[354073.762215]  schedule_preempt_disabled+0xe/0x10
[354073.762216]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354073.762217]  ? __switch_to_asm+0x34/0x70
[354073.762218]  ? __switch_to_asm+0x40/0x70
[354073.762219]  ? __switch_to_asm+0x40/0x70
[354073.762220]  __ww_mutex_lock_slowpath+0x16/0x20
[354073.762221]  ww_mutex_lock+0x34/0x50
[354073.762235]  drm_modeset_lock+0x35/0xb0 [drm]
[354073.762243]  drm_modeset_lock_all_ctx+0x5d/0xe0 [drm]
[354073.762251]  drm_modeset_lock_all+0x5e/0xb0 [drm]
[354073.762252]  qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl]
[354073.762254]  qxl_client_monitors_config_work_func+0x15/0x20 [qxl]
[354073.762256]  process_one_work+0x20f/0x410
[354073.762257]  worker_thread+0x34/0x400
[354073.762259]  kthread+0x120/0x140
[354073.762260]  ? process_one_work+0x410/0x410
[354073.762261]  ? __kthread_parkme+0x70/0x70
[354073.762262]  ret_from_fork+0x35/0x40
[354194.557095] INFO: task Xorg:920 blocked for more than 241 seconds.
[354194.558311]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354194.559484] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354194.560936] Xorg            D    0   920    854 0x00404004
[354194.560938] Call Trace:
[354194.560944]  __schedule+0x2ba/0x650
[354194.560946]  schedule+0x2d/0x90
[354194.560947]  schedule_preempt_disabled+0xe/0x10
[354194.560948]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354194.560950]  __ww_mutex_lock_slowpath+0x16/0x20
[354194.560950]  ww_mutex_lock+0x34/0x50
[354194.560956]  ttm_eu_reserve_buffers+0x1f9/0x2e0 [ttm]
[354194.560959]  qxl_release_reserve_list+0x67/0x150 [qxl]
[354194.560961]  ? qxl_bo_pin+0xaa/0x190 [qxl]
[354194.560963]  qxl_cursor_atomic_update+0x1b0/0x2e0 [qxl]
[354194.560971]  drm_atomic_helper_commit_planes+0xb9/0x220 [drm_kms_helper]
[354194.560975]  drm_atomic_helper_commit_tail+0x2b/0x70 [drm_kms_helper]
[354194.560979]  commit_tail+0x67/0x70 [drm_kms_helper]
[354194.560982]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
[354194.560993]  drm_atomic_commit+0x4a/0x50 [drm]
[354194.560997]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
[354194.561011]  __setplane_atomic+0xd3/0x120 [drm]
[354194.561019]  drm_mode_cursor_universal+0x142/0x270 [drm]
[354194.561027]  drm_mode_cursor_common+0xcb/0x220 [drm]
[354194.561034]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354194.561041]  drm_mode_cursor2_ioctl+0xe/0x10 [drm]
[354194.561047]  drm_ioctl_kernel+0xb0/0x100 [drm]
[354194.561049]  ? ___sys_recvmsg+0x16c/0x200
[354194.561057]  drm_ioctl+0x233/0x410 [drm]
[354194.561080]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354194.561082]  ? timerqueue_add+0x57/0x90
[354194.561084]  ? enqueue_hrtimer+0x3c/0x90
[354194.561086]  do_vfs_ioctl+0xa9/0x640
[354194.561088]  ? fput+0x13/0x20
[354194.561089]  ? __sys_recvmsg+0x88/0xa0
[354194.561090]  ksys_ioctl+0x67/0x90
[354194.561091]  __x64_sys_ioctl+0x1a/0x20
[354194.561093]  do_syscall_64+0x5a/0x140
[354194.561094]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[354194.561096] RIP: 0033:0x7ffad14d3417
[354194.561100] Code: Bad RIP value.
[354194.561100] RSP: 002b:00007ffdd5679978 EFLAGS: 00003246 ORIG_RAX:
0000000000000010
[354194.561101] RAX: ffffffffffffffda RBX: 000056428a474610 RCX:
00007ffad14d3417
[354194.561102] RDX: 00007ffdd56799b0 RSI: 00000000c02464bb RDI:
000000000000000e
[354194.561102] RBP: 00007ffdd56799b0 R08: 0000000000000040 R09:
0000000000000010
[354194.561103] R10: 000000000000003f R11: 0000000000003246 R12:
00000000c02464bb
[354194.561103] R13: 000000000000000e R14: 0000000000000000 R15:
000056428a4721d0
[354194.561163] INFO: task kworker/1:0:27625 blocked for more than 241
seconds.
[354194.562474]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354194.563994] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354194.565474] kworker/1:0     D    0 27625      2 0x80004000
[354194.565479] Workqueue: events qxl_client_monitors_config_work_func [qxl]
[354194.565480] Call Trace:
[354194.565483]  __schedule+0x2ba/0x650
[354194.565484]  schedule+0x2d/0x90
[354194.565486]  schedule_preempt_disabled+0xe/0x10
[354194.565486]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354194.565488]  ? __switch_to_asm+0x34/0x70
[354194.565489]  ? __switch_to_asm+0x40/0x70
[354194.565490]  ? __switch_to_asm+0x40/0x70
[354194.565490]  __ww_mutex_lock_slowpath+0x16/0x20
[354194.565491]  ww_mutex_lock+0x34/0x50
[354194.565499]  drm_modeset_lock+0x35/0xb0 [drm]
[354194.565507]  drm_modeset_lock_all_ctx+0x5d/0xe0 [drm]
[354194.565514]  drm_modeset_lock_all+0x5e/0xb0 [drm]
[354194.565516]  qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl]
[354194.565518]  qxl_client_monitors_config_work_func+0x15/0x20 [qxl]
[354194.565519]  process_one_work+0x20f/0x410
[354194.565521]  worker_thread+0x34/0x400
[354194.565522]  kthread+0x120/0x140
[354194.565523]  ? process_one_work+0x410/0x410
[354194.565524]  ? __kthread_parkme+0x70/0x70
[354194.565525]  ret_from_fork+0x35/0x40
[354315.400956] INFO: task Xorg:920 blocked for more than 362 seconds.
[354315.411626]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354315.422647] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354315.435897] Xorg            D    0   920    854 0x00404004
[354315.435899] Call Trace:
[354315.435923]  __schedule+0x2ba/0x650
[354315.435925]  schedule+0x2d/0x90
[354315.435927]  schedule_preempt_disabled+0xe/0x10
[354315.435928]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354315.435929]  __ww_mutex_lock_slowpath+0x16/0x20
[354315.435930]  ww_mutex_lock+0x34/0x50
[354315.435935]  ttm_eu_reserve_buffers+0x1f9/0x2e0 [ttm]
[354315.435939]  qxl_release_reserve_list+0x67/0x150 [qxl]
[354315.435941]  ? qxl_bo_pin+0xaa/0x190 [qxl]
[354315.435943]  qxl_cursor_atomic_update+0x1b0/0x2e0 [qxl]
[354315.435951]  drm_atomic_helper_commit_planes+0xb9/0x220 [drm_kms_helper]
[354315.435955]  drm_atomic_helper_commit_tail+0x2b/0x70 [drm_kms_helper]
[354315.435958]  commit_tail+0x67/0x70 [drm_kms_helper]
[354315.435962]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
[354315.435974]  drm_atomic_commit+0x4a/0x50 [drm]
[354315.435977]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
[354315.435985]  __setplane_atomic+0xd3/0x120 [drm]
[354315.435993]  drm_mode_cursor_universal+0x142/0x270 [drm]
[354315.436001]  drm_mode_cursor_common+0xcb/0x220 [drm]
[354315.436009]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354315.436016]  drm_mode_cursor2_ioctl+0xe/0x10 [drm]
[354315.436021]  drm_ioctl_kernel+0xb0/0x100 [drm]
[354315.436023]  ? ___sys_recvmsg+0x16c/0x200
[354315.436029]  drm_ioctl+0x233/0x410 [drm]
[354315.436036]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354315.436038]  ? timerqueue_add+0x57/0x90
[354315.436040]  ? enqueue_hrtimer+0x3c/0x90
[354315.436042]  do_vfs_ioctl+0xa9/0x640
[354315.436043]  ? fput+0x13/0x20
[354315.436045]  ? __sys_recvmsg+0x88/0xa0
[354315.436046]  ksys_ioctl+0x67/0x90
[354315.436047]  __x64_sys_ioctl+0x1a/0x20
[354315.436049]  do_syscall_64+0x5a/0x140
[354315.436050]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[354315.436051] RIP: 0033:0x7ffad14d3417
[354315.436069] Code: Bad RIP value.
[354315.436070] RSP: 002b:00007ffdd5679978 EFLAGS: 00003246 ORIG_RAX:
0000000000000010
[354315.436071] RAX: ffffffffffffffda RBX: 000056428a474610 RCX:
00007ffad14d3417
[354315.436071] RDX: 00007ffdd56799b0 RSI: 00000000c02464bb RDI:
000000000000000e
[354315.436072] RBP: 00007ffdd56799b0 R08: 0000000000000040 R09:
0000000000000010
[354315.436072] R10: 000000000000003f R11: 0000000000003246 R12:
00000000c02464bb
[354315.436073] R13: 000000000000000e R14: 0000000000000000 R15:
000056428a4721d0
[354315.436103] INFO: task kworker/1:0:27625 blocked for more than 362
seconds.
[354315.451103]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354315.461927] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354315.477908] kworker/1:0     D    0 27625      2 0x80004000
[354315.477916] Workqueue: events qxl_client_monitors_config_work_func [qxl]
[354315.477918] Call Trace:
[354315.477924]  __schedule+0x2ba/0x650
[354315.477925]  schedule+0x2d/0x90
[354315.477927]  schedule_preempt_disabled+0xe/0x10
[354315.477928]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354315.477930]  ? __switch_to_asm+0x34/0x70
[354315.477931]  ? __switch_to_asm+0x40/0x70
[354315.477932]  ? __switch_to_asm+0x40/0x70
[354315.477933]  __ww_mutex_lock_slowpath+0x16/0x20
[354315.477933]  ww_mutex_lock+0x34/0x50
[354315.477947]  drm_modeset_lock+0x35/0xb0 [drm]
[354315.477955]  drm_modeset_lock_all_ctx+0x5d/0xe0 [drm]
[354315.477963]  drm_modeset_lock_all+0x5e/0xb0 [drm]
[354315.477965]  qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl]
[354315.477967]  qxl_client_monitors_config_work_func+0x15/0x20 [qxl]
[354315.477969]  process_one_work+0x20f/0x410
[354315.477970]  worker_thread+0x34/0x400
[354315.477972]  kthread+0x120/0x140
[354315.477973]  ? process_one_work+0x410/0x410
[354315.477973]  ? __kthread_parkme+0x70/0x70
[354315.477975]  ret_from_fork+0x35/0x40
[354436.251965] INFO: task Xorg:920 blocked for more than 483 seconds.
[354436.253054]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354436.254109] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354436.255421] Xorg            D    0   920    854 0x00404004
[354436.255423] Call Trace:
[354436.255429]  __schedule+0x2ba/0x650
[354436.255431]  schedule+0x2d/0x90
[354436.255433]  schedule_preempt_disabled+0xe/0x10
[354436.255434]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354436.255435]  __ww_mutex_lock_slowpath+0x16/0x20
[354436.255435]  ww_mutex_lock+0x34/0x50
[354436.255441]  ttm_eu_reserve_buffers+0x1f9/0x2e0 [ttm]
[354436.255445]  qxl_release_reserve_list+0x67/0x150 [qxl]
[354436.255446]  ? qxl_bo_pin+0xaa/0x190 [qxl]
[354436.255448]  qxl_cursor_atomic_update+0x1b0/0x2e0 [qxl]
[354436.255456]  drm_atomic_helper_commit_planes+0xb9/0x220 [drm_kms_helper]
[354436.255459]  drm_atomic_helper_commit_tail+0x2b/0x70 [drm_kms_helper]
[354436.255463]  commit_tail+0x67/0x70 [drm_kms_helper]
[354436.255467]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
[354436.255479]  drm_atomic_commit+0x4a/0x50 [drm]
[354436.255482]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
[354436.255490]  __setplane_atomic+0xd3/0x120 [drm]
[354436.255498]  drm_mode_cursor_universal+0x142/0x270 [drm]
[354436.255506]  drm_mode_cursor_common+0xcb/0x220 [drm]
[354436.255513]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354436.255520]  drm_mode_cursor2_ioctl+0xe/0x10 [drm]
[354436.255526]  drm_ioctl_kernel+0xb0/0x100 [drm]
[354436.255527]  ? ___sys_recvmsg+0x16c/0x200
[354436.255533]  drm_ioctl+0x233/0x410 [drm]
[354436.255540]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354436.255542]  ? timerqueue_add+0x57/0x90
[354436.255544]  ? enqueue_hrtimer+0x3c/0x90
[354436.255546]  do_vfs_ioctl+0xa9/0x640
[354436.255547]  ? fput+0x13/0x20
[354436.255548]  ? __sys_recvmsg+0x88/0xa0
[354436.255550]  ksys_ioctl+0x67/0x90
[354436.255551]  __x64_sys_ioctl+0x1a/0x20
[354436.255553]  do_syscall_64+0x5a/0x140
[354436.255554]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[354436.255555] RIP: 0033:0x7ffad14d3417
[354436.255559] Code: Bad RIP value.
[354436.255560] RSP: 002b:00007ffdd5679978 EFLAGS: 00003246 ORIG_RAX:
0000000000000010
[354436.255561] RAX: ffffffffffffffda RBX: 000056428a474610 RCX:
00007ffad14d3417
[354436.255561] RDX: 00007ffdd56799b0 RSI: 00000000c02464bb RDI:
000000000000000e
[354436.255562] RBP: 00007ffdd56799b0 R08: 0000000000000040 R09:
0000000000000010
[354436.255562] R10: 000000000000003f R11: 0000000000003246 R12:
00000000c02464bb
[354436.255563] R13: 000000000000000e R14: 0000000000000000 R15:
000056428a4721d0
[354436.255599] INFO: task kworker/1:0:27625 blocked for more than 483
seconds.
[354436.256802]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354436.257874] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354436.278727] kworker/1:0     D    0 27625      2 0x80004000
[354436.278735] Workqueue: events qxl_client_monitors_config_work_func [qxl]
[354436.278736] Call Trace:
[354436.278742]  __schedule+0x2ba/0x650
[354436.278743]  schedule+0x2d/0x90
[354436.278745]  schedule_preempt_disabled+0xe/0x10
[354436.278746]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354436.278747]  ? __switch_to_asm+0x34/0x70
[354436.278748]  ? __switch_to_asm+0x40/0x70
[354436.278749]  ? __switch_to_asm+0x40/0x70
[354436.278750]  __ww_mutex_lock_slowpath+0x16/0x20
[354436.278751]  ww_mutex_lock+0x34/0x50
[354436.278764]  drm_modeset_lock+0x35/0xb0 [drm]
[354436.278772]  drm_modeset_lock_all_ctx+0x5d/0xe0 [drm]
[354436.278779]  drm_modeset_lock_all+0x5e/0xb0 [drm]
[354436.278781]  qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl]
[354436.278783]  qxl_client_monitors_config_work_func+0x15/0x20 [qxl]
[354436.278785]  process_one_work+0x20f/0x410
[354436.278786]  worker_thread+0x34/0x400
[354436.278787]  kthread+0x120/0x140
[354436.278788]  ? process_one_work+0x410/0x410
[354436.278789]  ? __kthread_parkme+0x70/0x70
[354436.278790]  ret_from_fork+0x35/0x40
[354557.088600] INFO: task Xorg:920 blocked for more than 604 seconds.
[354557.089689]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354557.090759] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354557.092075] Xorg            D    0   920    854 0x00404004
[354557.092077] Call Trace:
[354557.092083]  __schedule+0x2ba/0x650
[354557.092085]  schedule+0x2d/0x90
[354557.092086]  schedule_preempt_disabled+0xe/0x10
[354557.092087]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354557.092089]  __ww_mutex_lock_slowpath+0x16/0x20
[354557.092089]  ww_mutex_lock+0x34/0x50
[354557.092095]  ttm_eu_reserve_buffers+0x1f9/0x2e0 [ttm]
[354557.092098]  qxl_release_reserve_list+0x67/0x150 [qxl]
[354557.092100]  ? qxl_bo_pin+0xaa/0x190 [qxl]
[354557.092102]  qxl_cursor_atomic_update+0x1b0/0x2e0 [qxl]
[354557.092110]  drm_atomic_helper_commit_planes+0xb9/0x220 [drm_kms_helper]
[354557.092114]  drm_atomic_helper_commit_tail+0x2b/0x70 [drm_kms_helper]
[354557.092117]  commit_tail+0x67/0x70 [drm_kms_helper]
[354557.092121]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
[354557.092133]  drm_atomic_commit+0x4a/0x50 [drm]
[354557.092137]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
[354557.092145]  __setplane_atomic+0xd3/0x120 [drm]
[354557.092154]  drm_mode_cursor_universal+0x142/0x270 [drm]
[354557.092162]  drm_mode_cursor_common+0xcb/0x220 [drm]
[354557.092170]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354557.092179]  drm_mode_cursor2_ioctl+0xe/0x10 [drm]
[354557.092185]  drm_ioctl_kernel+0xb0/0x100 [drm]
[354557.092187]  ? ___sys_recvmsg+0x16c/0x200
[354557.092193]  drm_ioctl+0x233/0x410 [drm]
[354557.092201]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
[354557.092203]  ? timerqueue_add+0x57/0x90
[354557.092205]  ? enqueue_hrtimer+0x3c/0x90
[354557.092207]  do_vfs_ioctl+0xa9/0x640
[354557.092208]  ? fput+0x13/0x20
[354557.092209]  ? __sys_recvmsg+0x88/0xa0
[354557.092210]  ksys_ioctl+0x67/0x90
[354557.092212]  __x64_sys_ioctl+0x1a/0x20
[354557.092213]  do_syscall_64+0x5a/0x140
[354557.092215]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[354557.092216] RIP: 0033:0x7ffad14d3417
[354557.092220] Code: Bad RIP value.
[354557.092221] RSP: 002b:00007ffdd5679978 EFLAGS: 00003246 ORIG_RAX:
0000000000000010
[354557.092222] RAX: ffffffffffffffda RBX: 000056428a474610 RCX:
00007ffad14d3417
[354557.092223] RDX: 00007ffdd56799b0 RSI: 00000000c02464bb RDI:
000000000000000e
[354557.092223] RBP: 00007ffdd56799b0 R08: 0000000000000040 R09:
0000000000000010
[354557.092223] R10: 000000000000003f R11: 0000000000003246 R12:
00000000c02464bb
[354557.092224] R13: 000000000000000e R14: 0000000000000000 R15:
000056428a4721d0
[354557.092259] INFO: task kworker/1:0:27625 blocked for more than 604
seconds.
[354557.093464]       Not tainted 5.2.0-050200rc1-generic #201905191930
[354557.094520] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[354557.095834] kworker/1:0     D    0 27625      2 0x80004000
[354557.095838] Workqueue: events qxl_client_monitors_config_work_func [qxl]
[354557.095839] Call Trace:
[354557.095841]  __schedule+0x2ba/0x650
[354557.095843]  schedule+0x2d/0x90
[354557.095844]  schedule_preempt_disabled+0xe/0x10
[354557.095845]  __ww_mutex_lock.isra.11+0x3e0/0x750
[354557.095846]  ? __switch_to_asm+0x34/0x70
[354557.095847]  ? __switch_to_asm+0x40/0x70
[354557.095848]  ? __switch_to_asm+0x40/0x70
[354557.095849]  __ww_mutex_lock_slowpath+0x16/0x20
[354557.095850]  ww_mutex_lock+0x34/0x50
[354557.095858]  drm_modeset_lock+0x35/0xb0 [drm]
[354557.095866]  drm_modeset_lock_all_ctx+0x5d/0xe0 [drm]
[354557.095874]  drm_modeset_lock_all+0x5e/0xb0 [drm]
[354557.095876]  qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl]
[354557.095878]  qxl_client_monitors_config_work_func+0x15/0x20 [qxl]
[354557.095880]  process_one_work+0x20f/0x410
[354557.095881]  worker_thread+0x34/0x400
[354557.095882]  kthread+0x120/0x140
[354557.095883]  ? process_one_work+0x410/0x410
[354557.095884]  ? __kthread_parkme+0x70/0x70
[354557.095885]  ret_from_fork+0x35/0x40

Please contact me if more information is needed.


Best regards,
Jaak Ristioja

^ permalink raw reply	[flat|nested] 22+ messages in thread
* Re: Xorg indefinitely hangs in kernelspace
@ 2019-09-06  5:53 Hillf Danton
  2019-09-06 20:27 ` [Spice-devel] " Frediano Ziglio
  2019-09-09  5:52   ` Gerd Hoffmann
  0 siblings, 2 replies; 22+ messages in thread
From: Hillf Danton @ 2019-09-06  5:53 UTC (permalink / raw)
  To: Jaak Ristioja
  Cc: David Airlie, linux-kernel, dri-devel, virtualization,
	Daniel Vetter, spice-devel, Dave Airlie


On Tue, 6 Aug 2019 21:00:10 +0300 From:   Jaak Ristioja <jaak@ristioja.ee>
> Hello!
> 
> I'm writing to report a crash in the QXL / DRM code in the Linux kernel.
> I originally filed the issue on LaunchPad and more details can be found
> there, although I doubt whether these details are useful.
> 
>   https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1813620
> 
> I first experienced these issues with:
> 
> * Ubuntu 18.04 (probably kernel 4.15.something)
> * Ubuntu 18.10 (kernel 4.18.0-13)
> * Ubuntu 19.04 (kernel 5.0.0-13-generic)
> * Ubuntu 19.04 (mainline kernel 5.1-rc7)
> * Ubuntu 19.04 (mainline kernel 5.2.0-050200rc1-generic)
> 
> Here is the crash output from dmesg:
> 
> [354073.713350] INFO: task Xorg:920 blocked for more than 120 seconds.
> [354073.717755]       Not tainted 5.2.0-050200rc1-generic #201905191930
> [354073.722277] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
> disables this message.
> [354073.738332] Xorg            D    0   920    854 0x00404004
> [354073.738334] Call Trace:
> [354073.738340]  __schedule+0x2ba/0x650
> [354073.738342]  schedule+0x2d/0x90
> [354073.738343]  schedule_preempt_disabled+0xe/0x10
> [354073.738345]  __ww_mutex_lock.isra.11+0x3e0/0x750
> [354073.738346]  __ww_mutex_lock_slowpath+0x16/0x20
> [354073.738347]  ww_mutex_lock+0x34/0x50
> [354073.738352]  ttm_eu_reserve_buffers+0x1f9/0x2e0 [ttm]
> [354073.738356]  qxl_release_reserve_list+0x67/0x150 [qxl]
> [354073.738358]  ? qxl_bo_pin+0xaa/0x190 [qxl]
> [354073.738359]  qxl_cursor_atomic_update+0x1b0/0x2e0 [qxl]
> [354073.738367]  drm_atomic_helper_commit_planes+0xb9/0x220 [drm_kms_helper]
> [354073.738371]  drm_atomic_helper_commit_tail+0x2b/0x70 [drm_kms_helper]
> [354073.738374]  commit_tail+0x67/0x70 [drm_kms_helper]
> [354073.738378]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
> [354073.738390]  drm_atomic_commit+0x4a/0x50 [drm]
> [354073.738394]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
> [354073.738402]  __setplane_atomic+0xd3/0x120 [drm]
> [354073.738410]  drm_mode_cursor_universal+0x142/0x270 [drm]
> [354073.738418]  drm_mode_cursor_common+0xcb/0x220 [drm]
> [354073.738425]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
> [354073.738432]  drm_mode_cursor2_ioctl+0xe/0x10 [drm]
> [354073.738438]  drm_ioctl_kernel+0xb0/0x100 [drm]
> [354073.738440]  ? ___sys_recvmsg+0x16c/0x200
> [354073.738445]  drm_ioctl+0x233/0x410 [drm]
> [354073.738452]  ? drm_mode_cursor_ioctl+0x60/0x60 [drm]
> [354073.738454]  ? timerqueue_add+0x57/0x90
> [354073.738456]  ? enqueue_hrtimer+0x3c/0x90
> [354073.738458]  do_vfs_ioctl+0xa9/0x640
> [354073.738459]  ? fput+0x13/0x20
> [354073.738461]  ? __sys_recvmsg+0x88/0xa0
> [354073.738462]  ksys_ioctl+0x67/0x90
> [354073.738463]  __x64_sys_ioctl+0x1a/0x20
> [354073.738465]  do_syscall_64+0x5a/0x140
> [354073.738467]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
> [354073.738468] RIP: 0033:0x7ffad14d3417
> [354073.738472] Code: Bad RIP value.
> [354073.738472] RSP: 002b:00007ffdd5679978 EFLAGS: 00003246 ORIG_RAX:
> 0000000000000010
> [354073.738473] RAX: ffffffffffffffda RBX: 000056428a474610 RCX:
> 00007ffad14d3417
> [354073.738474] RDX: 00007ffdd56799b0 RSI: 00000000c02464bb RDI:
> 000000000000000e
> [354073.738474] RBP: 00007ffdd56799b0 R08: 0000000000000040 R09:
> 0000000000000010
> [354073.738475] R10: 000000000000003f R11: 0000000000003246 R12:
> 00000000c02464bb
> [354073.738475] R13: 000000000000000e R14: 0000000000000000 R15:
> 000056428a4721d0
> [354073.738511] INFO: task kworker/1:0:27625 blocked for more than 120 seconds.
> [354073.745154]       Not tainted 5.2.0-050200rc1-generic #201905191930
> [354073.751900] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
> disables this message.
> [354073.762197] kworker/1:0     D    0 27625      2 0x80004000
> [354073.762205] Workqueue: events qxl_client_monitors_config_work_func [qxl]
> [354073.762206] Call Trace:
> [354073.762211]  __schedule+0x2ba/0x650
> [354073.762214]  schedule+0x2d/0x90
> [354073.762215]  schedule_preempt_disabled+0xe/0x10
> [354073.762216]  __ww_mutex_lock.isra.11+0x3e0/0x750
> [354073.762217]  ? __switch_to_asm+0x34/0x70
> [354073.762218]  ? __switch_to_asm+0x40/0x70
> [354073.762219]  ? __switch_to_asm+0x40/0x70
> [354073.762220]  __ww_mutex_lock_slowpath+0x16/0x20
> [354073.762221]  ww_mutex_lock+0x34/0x50
> [354073.762235]  drm_modeset_lock+0x35/0xb0 [drm]
> [354073.762243]  drm_modeset_lock_all_ctx+0x5d/0xe0 [drm]
> [354073.762251]  drm_modeset_lock_all+0x5e/0xb0 [drm]
> [354073.762252]  qxl_display_read_client_monitors_config+0x1e1/0x370 [qxl]
> [354073.762254]  qxl_client_monitors_config_work_func+0x15/0x20 [qxl]
> [354073.762256]  process_one_work+0x20f/0x410
> [354073.762257]  worker_thread+0x34/0x400
> [354073.762259]  kthread+0x120/0x140
> [354073.762260]  ? process_one_work+0x410/0x410
> [354073.762261]  ? __kthread_parkme+0x70/0x70
> [354073.762262]  ret_from_fork+0x35/0x40
> 

--- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c
+++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c
@@ -97,8 +97,9 @@ int ttm_eu_reserve_buffers(struct ww_acq
 			   struct list_head *dups, bool del_lru)
 {
 	struct ttm_bo_global *glob;
-	struct ttm_validate_buffer *entry;
+	struct ttm_validate_buffer *entry, *last_entry;
 	int ret;
+	bool locked = false;
 
 	if (list_empty(list))
 		return 0;
@@ -112,7 +113,10 @@ int ttm_eu_reserve_buffers(struct ww_acq
 	list_for_each_entry(entry, list, head) {
 		struct ttm_buffer_object *bo = entry->bo;
 
+		last_entry = entry;
 		ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
+		if (!ret)
+			locked = true;
 		if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
 			reservation_object_unlock(bo->resv);
 
@@ -151,6 +155,10 @@ int ttm_eu_reserve_buffers(struct ww_acq
 				ret = 0;
 			}
 		}
+		if (!ret)
+			locked = true;
+		else
+			locked = false;
 
 		if (!ret && entry->num_shared)
 			ret = reservation_object_reserve_shared(bo->resv,
@@ -163,6 +171,8 @@ int ttm_eu_reserve_buffers(struct ww_acq
 				ww_acquire_done(ticket);
 				ww_acquire_fini(ticket);
 			}
+			if (locked)
+				ttm_eu_backoff_reservation_reverse(list, entry);
 			return ret;
 		}
 
@@ -172,6 +182,8 @@ int ttm_eu_reserve_buffers(struct ww_acq
 		list_del(&entry->head);
 		list_add(&entry->head, list);
 	}
+	if (locked)
+		ttm_eu_backoff_reservation_reverse(list, last_entry);
 
 	if (del_lru) {
 		spin_lock(&glob->lru_lock);
--

^ permalink raw reply	[flat|nested] 22+ messages in thread
* Re: Xorg indefinitely hangs in kernelspace
@ 2019-09-09 12:12 Hillf Danton
  0 siblings, 0 replies; 22+ messages in thread
From: Hillf Danton @ 2019-09-09 12:12 UTC (permalink / raw)
  To: Gerd Hoffmann, Jaak Ristioja
  Cc: David Airlie, linux-kernel, dri-devel, virtualization,
	Daniel Vetter, spice-devel, Dave Airlie


On Mon, 9 Sep 2019 from Gerd Hoffmann <kraxel@redhat.com>
>
> Hmm, I think the patch is wrong.

Hmm...it should have added change only in the error path, leaving locks
for drivers to release if job is done with no error returned.

> As far I know it is the qxl drivers's
> job to call ttm_eu_backoff_reservation().

Like other drivers, qxl is currently doing the right.

> Doing that automatically in
> ttm will most likely break other ttm users.
>
You are right. They are responsible for doing backoff if error happens
while validating buffers afterwards.


--- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c
+++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c
@@ -111,8 +111,10 @@ int ttm_eu_reserve_buffers(struct ww_acq
 
 	list_for_each_entry(entry, list, head) {
 		struct ttm_buffer_object *bo = entry->bo;
+		bool lockon;
 
 		ret = __ttm_bo_reserve(bo, intr, (ticket == NULL), ticket);
+		lockon = !ret;
 		if (!ret && unlikely(atomic_read(&bo->cpu_writers) > 0)) {
 			reservation_object_unlock(bo->resv);
 
@@ -151,6 +153,7 @@ int ttm_eu_reserve_buffers(struct ww_acq
 				ret = 0;
 			}
 		}
+		lockon = !ret;
 
 		if (!ret && entry->num_shared)
 			ret = reservation_object_reserve_shared(bo->resv,
@@ -163,6 +166,8 @@ int ttm_eu_reserve_buffers(struct ww_acq
 				ww_acquire_done(ticket);
 				ww_acquire_fini(ticket);
 			}
+			if (lockon)
+				ttm_eu_backoff_reservation_reverse(list, entry);
 			return ret;
 		}
 
--

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2019-10-03  8:23 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-06 18:00 Xorg indefinitely hangs in kernelspace Jaak Ristioja
2019-09-05  7:14 ` Gerd Hoffmann
2019-09-05  7:14   ` Gerd Hoffmann
2019-09-05 12:34   ` Jaak Ristioja
2019-09-05 12:34   ` Jaak Ristioja
2019-09-24  9:12     ` Jaak Ristioja
2019-09-24  9:12     ` Jaak Ristioja
2019-09-30 13:29       ` [Spice-devel] " Frediano Ziglio
2019-09-30 13:29       ` Frediano Ziglio
2019-09-30 13:29         ` Frediano Ziglio
2019-10-03  6:45         ` Jaak Ristioja
2019-10-03  6:45         ` Jaak Ristioja
2019-10-03  8:23         ` Hillf Danton
2019-09-05  7:14 ` Gerd Hoffmann
2019-09-06  5:53 Hillf Danton
2019-09-06 20:27 ` [Spice-devel] " Frediano Ziglio
2019-09-07  2:00   ` Hillf Danton
2019-09-09  5:52 ` Gerd Hoffmann
2019-09-09  5:52   ` Gerd Hoffmann
2019-09-09  7:13   ` Hillf Danton
2019-09-09  7:13   ` Hillf Danton
2019-09-09  7:13   ` Hillf Danton
2019-09-09 12:12 Hillf Danton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.