https://bugs.kde.org/show_bug.cgi?id=460594
--- Comment #25 from Bernhard Übelacker <bernha...@mailbox.org> --- (In reply to Bernhard Übelacker from comment #24) > Thread 1 in each process seem to be middle in some processing, plasmashell > waiting for some mutex, kwin_x11 for some xcb request. Tried to look a little further in plasmashell process. It looks like thread 1 is inside some QSGThreadedRenderLoop and is waiting to be woken by some other thread: Thread 1 (Thread 0x7fd89f10aa00 (LWP 1857)): ... #4 ___pthread_cond_wait (cond=0x7fd87006c068, mutex=0x7fd87006c040) at ./nptl/pthread_cond_wait.c:618 #5 0x00007fd8a3cd199b in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x7fd87006c040) at thread/qwaitcondition_unix.cpp:146 #6 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x7fd87008b428, deadline=...) at thread/qwaitcondition_unix.cpp:225 #7 0x00007fd8a5a0b968 in QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) (this=this@entry=0x7fd898007220, w=w@entry=0x7fd8980319a0, inExpose=inExpose@entry=true) at scenegraph/qsgthreadedrenderloop.cpp:1603 #8 0x00007fd8a5a0cc23 in QSGThreadedRenderLoop::handleExposure(QQuickWindow*) (this=0x7fd898007220, window=<optimized out>) at scenegraph/qsgthreadedrenderloop.cpp:1374 ... https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.6%2Bdfsg-2/src/quick/scenegraph/qsgthreadedrenderloop.cpp/#L1603 1603 w->thread->waitCondition.wait(&w->thread->mutex); https://sources.debian.org/src/qtdeclarative-opensource-src/5.15.6%2Bdfsg-2/src/quick/scenegraph/qsgthreadedrenderloop.cpp/#L1374 1374 polishAndSync(w, true); There are a few other threads executing below `QSGRenderThread::run()` and also waiting ... : ... #6 QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=this@entry=0x7fd870082768, mutex=mutex@entry=0x7fd870082760, deadline=...) at thread/qwaitcondition_unix.cpp:225 #7 0x00007fd8a5a07c95 in QSGRenderThreadEventQueue::takeEvent(bool) (wait=true, this=0x7fd870082758) at scenegraph/qsgthreadedrenderloop.cpp:257 #8 QSGRenderThread::processEventsAndWaitForMore() (this=this@entry=0x7fd8700826c0) at scenegraph/qsgthreadedrenderloop.cpp:935 #9 0x00007fd8a5a0a0c1 in QSGRenderThread::run() (this=0x7fd8700826c0) at scenegraph/qsgthreadedrenderloop.cpp:1052 ... But there is one thread that seems waiting in plasmashell process also for some xcb reply: (gdb) bt #0 0x00007fd8a3b1afef in __GI___poll (fds=fds@entry=0x7fd72e7fa7a8, nfds=nfds@entry=1, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fd8a61a4d12 in poll (__timeout=-1, __nfds=1, __fds=0x7fd72e7fa7a8) at /usr/include/x86_64-linux-gnu/bits/poll2.h:47 #2 _xcb_conn_wait (c=c@entry=0x56038ce45910, cond=cond@entry=0x7fd7180e71c8, vector=vector@entry=0x0, count=count@entry=0x0) at ../../src/xcb_conn.c:508 #3 0x00007fd8a61a716a in xcb_wait_for_special_event (c=0x56038ce45910, se=0x7fd7180e71a0) at ../../src/xcb_in.c:806 #4 0x00007fd89ddf1465 in dri3_wait_for_event_locked (draw=draw@entry=0x7fd7180f5798, full_sequence=full_sequence@entry=0x0) at ../src/loader/loader_dri3_helper.c:584 #5 0x00007fd89ddf22a4 in dri3_find_back (draw=draw@entry=0x7fd7180f5798, prefer_a_different=<optimized out>) at ../src/loader/loader_dri3_helper.c:726 #6 0x00007fd89ddf3da1 in dri3_get_buffer (format=format@entry=4099, buffer_type=buffer_type@entry=loader_dri3_buffer_back, draw=draw@entry=0x7fd7180f5798, driDrawable=<optimized out>) at ../src/loader/loader_dri3_helper.c:2030 #7 0x00007fd89ddf40d3 in loader_dri3_get_buffers (driDrawable=<optimized out>, format=4099, stamp=0x7fd718088720, loaderPrivate=0x7fd7180f5798, buffer_mask=<optimized out>, buffers=0x7fd72e7fab00) at ../src/loader/loader_dri3_helper.c:2255 #8 0x00007fd8966ae13f in dri_image_drawable_get_buffers (drawable=drawable@entry=0x7fd718088720, images=images@entry=0x7fd72e7fab00, statts=statts@entry=0x7fd71816ce78, statts_count=statts_count@entry=2) at ../src/gallium/frontends/dri/dri2.c:289 #9 0x00007fd8966ae27f in dri2_allocate_textures (ctx=0x56038d312f10, drawable=0x7fd718088720, statts=0x7fd71816ce78, statts_count=2) at ../src/gallium/frontends/dri/dri2.c:458 #10 0x00007fd8966b1265 in dri_st_framebuffer_validate (stctx=<optimized out>, stfbi=<optimized out>, statts=0x7fd71816ce78, count=2, out=0x7fd72e7face0) at ../src/gallium/frontends/dri/dri_drawable.c:82 #11 0x00007fd896784d62 in st_framebuffer_validate (stfb=stfb@entry=0x7fd71816ca20, st=st@entry=0x56039097e4f0) at ../src/mesa/state_tracker/st_manager.c:238 #12 0x00007fd896785405 in st_manager_validate_framebuffers (st=0x56039097e4f0) at ../src/mesa/state_tracker/st_manager.c:1333 #13 0x00007fd89675f6ed in st_validate_state (st=st@entry=0x56039097e4f0, pipeline=pipeline@entry=ST_PIPELINE_CLEAR) at ../src/mesa/state_tracker/st_atom.c:231 #14 0x00007fd896933314 in st_Clear (ctx=0x5603916d9e70, mask=50) at ../src/mesa/state_tracker/st_cb_clear.c:432 #15 0x00007fd8a59af885 in QSGBatchRenderer::Renderer::renderBatches() (this=this@entry=0x7fd7180c23a0) at scenegraph/coreapi/qsgbatchrenderer.cpp:4022 #16 0x00007fd8a59b0326 in QSGBatchRenderer::Renderer::render() (this=<optimized out>) at scenegraph/coreapi/qsgbatchrenderer.cpp:4343 #17 0x00007fd8a5997db0 in QSGRenderer::renderScene(QSGBindable const&) (bindable=<optimized out>, this=0x7fd7180c23a0) at scenegraph/coreapi/qsgrenderer.cpp:264 #18 QSGRenderer::renderScene(QSGBindable const&) (this=0x7fd7180c23a0, bindable=<optimized out>) at scenegraph/coreapi/qsgrenderer.cpp:220 #19 0x00007fd8a5998263 in QSGRenderer::renderScene(unsigned int) (this=<optimized out>, fboId=<optimized out>) at scenegraph/coreapi/qsgrenderer.cpp:212 #20 0x00007fd8a59fb273 in QSGDefaultRenderContext::renderNextFrame(QSGRenderer*, unsigned int) (this=0x560390d2ac60, renderer=0x7fd7180c23a0, fboId=<optimized out>) at scenegraph/qsgdefaultrendercontext.cpp:228 #21 0x00007fd8a5a67cb9 in QQuickWindowPrivate::renderSceneGraph(QSize const&, QSize const&) (this=0x5603909d9cf0, size=<optimized out>, surfaceSize=<optimized out>) at items/qquickwindow.cpp:617 #22 0x00007fd8a5a091a7 in QSGRenderThread::syncAndRender(QImage*) (this=0x7fd87008b3d0, grabImage=0x0) at scenegraph/qsgthreadedrenderloop.cpp:836 #23 0x00007fd8a5a0a07f in QSGRenderThread::run() (this=0x7fd87008b3d0) at scenegraph/qsgthreadedrenderloop.cpp:1042 #24 0x00007fd8a3ccbcd1 in QThreadPrivate::start(void*) (arg=0x7fd87008b3d0) at thread/qthread_unix.cpp:329 #25 0x00007fd8a3aa7fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442 #26 0x00007fd8a3b285ac in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Operating System: Debian GNU/Linux KDE Plasma Version: 5.26.3 KDE Frameworks Version: 5.98.0 Qt Version: 5.15.6 Kernel Version: 6.0.0-3-amd64 (64-bit) Graphics Platform: X11 Graphics Processor: AMD Radeon RX 460 Graphics So one data point might be the graphics driver, are all experiencing this hang using an AMD graphics card? -- You are receiving this mail because: You are watching all bug changes.