Attaching crash files to bugs doesn't usually work, but this time we got lucky. This shows gnome-shell using software rendering to redraw the screen as expected, but being blocked in a wait (as are all threads). So this might be a threading/timing regression in the kernel, or it might be irrelevant because we expect VMs to spend all their time doing software rendering like this anyway. Just not deadlocked like this appears to be.
My only remaining suggestion is to bisect the individual kernel changes :(
The gnome-shell stack trace stuck in Mesa doing software rendering:
#3 0x00007f11f4242476 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26
#4 0x0000561bf427f7aa in ()
#5 0x00007f11f4242520 in <signal handler called> () at /lib/x86_64-linux-gnu/libc.so.6
#6 __futex_abstimed_wait_common64
(private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x561bf5fbc578)
at ./nptl/futex-internal.c:57
#7 __futex_abstimed_wait_common
(cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x561bf5fbc578)
at ./nptl/futex-internal.c:87
#8 __GI___futex_abstimed_wait_cancelable64
(futex_word=futex_word@entry=0x561bf5fbc578, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
#9 0x00007f11f4293ac1 in __pthread_cond_wait_common
(abstime=0x0, clockid=0, mutex=0x561bf5fbc528, cond=0x561bf5fbc550) at ./nptl/pthread_cond_wait.c:503
#10 ___pthread_cond_wait (cond=0x561bf5fbc550, mutex=0x561bf5fbc528) at ./nptl/pthread_cond_wait.c:627
#11 0x00007f11dd70aced in cnd_wait (cond=<optimised out>, mtx=<optimised out>) at ../src/c11/impl/threads_posix.c:135
#12 0x00007f11ddcbc2c3 in lp_fence_wait (f=f@entry=0x561bf5fbc520) at ../src/gallium/drivers/llvmpipe/lp_fence.c:124
#13 0x00007f11ddcb9594 in llvmpipe_fence_finish
(screen=<optimised out>, ctx=<optimised out>, fence_handle=0x561bf5fbc520, timeout=18446744073709551615)
at ../src/gallium/drivers/llvmpipe/lp_screen.c:908
#14 0x00007f11ddcbc531 in llvmpipe_finish
(pipe=pipe@entry=0x561bf5dc3130, reason=reason@entry=0x7f11de927657 "sotropy")
at ../src/gallium/drivers/llvmpipe/lp_flush.c:93
#15 0x00007f11ddcbc60f in llvmpipe_flush_resource
(pipe=pipe@entry=0x561bf5dc3130, resource=0x561bfbff5860, level=level@entry=0, read_only=read_only@entry=1 '\001', cpu_access=cpu_access@entry=0 '\000', do_not_block=do_not_block@entry=0 '\000', reason=0x7f11de927657 "sotropy")
at ../src/gallium/drivers/llvmpipe/lp_flush.c:132
#16 0x00007f11ddce9e13 in llvmpipe_set_sampler_views
(pipe=0x561bf5dc3130, shader=PIPE_SHADER_FRAGMENT, start=0, num=1, unbind_num_trailing_slots=0, take_ownership=true, views=0x7ffe044f7440) at ../src/gallium/drivers/llvmpipe/lp_state_sampler.c:153
#17 0x00007f11dd76b04b in update_textures
(st=0x561bf5fcb770, shader_stage=PIPE_SHADER_FRAGMENT, prog=<optimised out>)
at ../src/mesa/state_tracker/st_atom_texture.c:271
#18 0x00007f11dd762bd8 in st_validate_state (st=st@entry=0x561bf5fcb770, pipeline=pipeline@entry=ST_PIPELINE_RENDER)
at ../src/util/bitscan.h:102
#19 0x00007f11dd77b62b in prepare_draw
(st=0x561bf5fcb770, ctx=0x561bf611cea0, state_mask=<optimised out>, pipeline=ST_PIPELINE_RENDER)
at ../src/mesa/state_tracker/st_draw.c:102
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007f11dd77baaf in st_draw_gallium
(ctx=0x561bf611cea0, info=0x7ffe044f7660, drawid_offset=0, draws=0x7ffe044f7654, num_draws=1)
at ../src/mesa/state_tracker/st_draw.c:180
#21 0x00007f11dd876035 in _mesa_draw_arrays
(ctx=<optimised out>, mode=<optimised out>, start=<optimised out>, count=<optimised out>, numInstances=<optimised out>, baseInstance=<optimised out>) at ../src/mesa/main/draw.c:1324
#22 0x00007f11f5476eb2 in () at /usr/lib/x86_64-linux-gnu/mutter-10/libmutter-cogl-10.so.0
#23 0x00007f11f5477266 in () at /usr/lib/x86_64-linux-gnu/mutter-10/libmutter-cogl-10.so.0
#24 0x00007f11f54774c6 in () at /usr/lib/x86_64-linux-gnu/mutter-10/libmutter-cogl-10.so.0
#25 0x00007f11f5477f4f in () at /usr/lib/x86_64-linux-gnu/mutter-10/libmutter-cogl-10.so.0
#26 0x00007f11f547f343 in () at /usr/lib/x86_64-linux-gnu/mutter-10/libmutter-cogl-10.so.0
#27 0x00007f11f5482d1d in cogl_onscreen_swap_region () at /usr/lib/x86_64-linux-gnu/mutter-10/libmutter-cogl-10.so.0
Attaching crash files to bugs doesn't usually work, but this time we got lucky. This shows gnome-shell using software rendering to redraw the screen as expected, but being blocked in a wait (as are all threads). So this might be a threading/timing regression in the kernel, or it might be irrelevant because we expect VMs to spend all their time doing software rendering like this anyway. Just not deadlocked like this appears to be.
My only remaining suggestion is to bisect the individual kernel changes :(
https:/ /git.launchpad. net/~ubuntu- kernel/ ubuntu/ +source/ linux/+ git/jammy/ log/?h= Ubuntu- hwe-5.19- 5.19.0- 42.43_22. 04.1
---
The gnome-shell stack trace stuck in Mesa doing software rendering:
#3 0x00007f11f4242476 in __GI_raise (sig=6) at ../sysdeps/ posix/raise. c:26 64-linux- gnu/libc. so.6 abstimed_ wait_common64 0x561bf5fbc578) futex-internal. c:57 abstimed_ wait_common 0x561bf5fbc578) futex-internal. c:87 futex_abstimed_ wait_cancelable 64 word=futex_ word@entry= 0x561bf5fbc578, expected= expected@ entry=0, clockid= clockid@ entry=0, abstime= abstime@ entry=0x0, private= private@ entry=0) at ./nptl/ futex-internal. c:139 cond_wait_ common bc528, cond=0x561bf5fb c550) at ./nptl/ pthread_ cond_wait. c:503 cond_wait (cond=0x561bf5f bc550, mutex=0x561bf5f bc528) at ./nptl/ pthread_ cond_wait. c:627 c11/impl/ threads_ posix.c: 135 0x561bf5fbc520) at ../src/ gallium/ drivers/ llvmpipe/ lp_fence. c:124 fence_finish <optimised out>, ctx=<optimised out>, fence_handle= 0x561bf5fbc520, timeout= 184467440737095 51615) gallium/ drivers/ llvmpipe/ lp_screen. c:908 pipe@entry= 0x561bf5dc3130, reason= reason@ entry=0x7f11de9 27657 "sotropy") gallium/ drivers/ llvmpipe/ lp_flush. c:93 flush_resource pipe@entry= 0x561bf5dc3130, resource= 0x561bfbff5860, level=level@ entry=0, read_only= read_only@ entry=1 '\001', cpu_access= cpu_access@ entry=0 '\000', do_not_ block=do_ not_block@ entry=0 '\000', reason= 0x7f11de927657 "sotropy") gallium/ drivers/ llvmpipe/ lp_flush. c:132 set_sampler_ views 0x561bf5dc3130, shader= PIPE_SHADER_ FRAGMENT, start=0, num=1, unbind_ num_trailing_ slots=0, take_ownership= true, views=0x7ffe044 f7440) at ../src/ gallium/ drivers/ llvmpipe/ lp_state_ sampler. c:153 0x561bf5fcb770, shader_ stage=PIPE_ SHADER_ FRAGMENT, prog=<optimised out>) mesa/state_ tracker/ st_atom_ texture. c:271 entry=0x561bf5f cb770, pipeline= pipeline@ entry=ST_ PIPELINE_ RENDER) util/bitscan. h:102 0x561bf5fcb770, ctx=0x561bf611cea0, state_mask= <optimised out>, pipeline= ST_PIPELINE_ RENDER) mesa/state_ tracker/ st_draw. c:102 0x561bf611cea0, info=0x7ffe044f 7660, drawid_offset=0, draws=0x7ffe044 f7654, num_draws=1) mesa/state_ tracker/ st_draw. c:180 <optimised out>, baseInstance= <optimised out>) at ../src/ mesa/main/ draw.c: 1324 x86_64- linux-gnu/ mutter- 10/libmutter- cogl-10. so.0 x86_64- linux-gnu/ mutter- 10/libmutter- cogl-10. so.0 x86_64- linux-gnu/ mutter- 10/libmutter- cogl-10. so.0 x86_64- linux-gnu/ mutter- 10/libmutter- cogl-10. so.0 x86_64- linux-gnu/ mutter- 10/libmutter- cogl-10. so.0 swap_region () at /usr/lib/ x86_64- linux-gnu/ mutter- 10/libmutter- cogl-10. so.0
#4 0x0000561bf427f7aa in ()
#5 0x00007f11f4242520 in <signal handler called> () at /lib/x86_
#6 __futex_
(private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=
at ./nptl/
#7 __futex_
(cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=
at ./nptl/
#8 __GI___
(futex_
#9 0x00007f11f4293ac1 in __pthread_
(abstime=0x0, clockid=0, mutex=0x561bf5f
#10 ___pthread_
#11 0x00007f11dd70aced in cnd_wait (cond=<optimised out>, mtx=<optimised out>) at ../src/
#12 0x00007f11ddcbc2c3 in lp_fence_wait (f=f@entry=
#13 0x00007f11ddcb9594 in llvmpipe_
(screen=
at ../src/
#14 0x00007f11ddcbc531 in llvmpipe_finish
(pipe=
at ../src/
#15 0x00007f11ddcbc60f in llvmpipe_
(pipe=
at ../src/
#16 0x00007f11ddce9e13 in llvmpipe_
(pipe=
#17 0x00007f11dd76b04b in update_textures
(st=
at ../src/
#18 0x00007f11dd762bd8 in st_validate_state (st=st@
at ../src/
#19 0x00007f11dd77b62b in prepare_draw
(st=
at ../src/
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007f11dd77baaf in st_draw_gallium
(ctx=
at ../src/
#21 0x00007f11dd876035 in _mesa_draw_arrays
(ctx=<optimised out>, mode=<optimised out>, start=<optimised out>, count=<optimised out>, numInstances=
#22 0x00007f11f5476eb2 in () at /usr/lib/
#23 0x00007f11f5477266 in () at /usr/lib/
#24 0x00007f11f54774c6 in () at /usr/lib/
#25 0x00007f11f5477f4f in () at /usr/lib/
#26 0x00007f11f547f343 in () at /usr/lib/
#27 0x00007f11f5482d1d in cogl_onscreen_