I experienced the same bug on my Thinkpad, which has an Intel video card. So at least we know it's not a driver issue. This time I could get a stacktrace from gdb: #0 0x00007ffff733bb03 in poll () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff5247862 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #2 0x00007ffff5248d5f in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #3 0x00007ffff5248f7b in xcb_wait_for_reply () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #4 0x00007ffff6d4209d in _XReply () from /usr/lib/x86_64-linux-gnu/libX11.so.6 #5 0x00007fffeb578841 in DRI2GetBuffersWithFormat (dpy=0x6176b0, drawable=98, width=0x6a5288, height=0x6a528c, attachments=0x400e8b0, count=4, outCount=0x7fffffffd24c) at dri2.c:470 #6 0x00007fffeb57648c in dri2GetBuffersWithFormat (driDrawable=, width=0x6a5288, height=0x6a528c, attachments=, count=, out_count=0x7fffffffd24c, loaderPrivate=0x6a5180) at dri2_glx.c:771 #7 0x00007fffeaa34c3c in intel_query_dri2_buffers_with_separate_stencil (count=0x7fffffffd24c, attachments=, buffers=, drawable=0x6a5260, intel=0x7ffff7fd0040) at intel_context.c:1183 #8 intel_update_renderbuffers (context=, drawable=0x6a5260) at intel_context.c:304 #9 0x00007fffeaa358e2 in intel_prepare_render (intel=) at intel_context.c:396 #10 0x00007fffeaa4f2a6 in brw_try_draw_prims (max_index=3, min_index=0, ib=0x0, nr_prims=1, prim=0x70c5ac, arrays=0x70e018, ctx=0x7ffff7fd0040) at brw_draw.c:449 #11 brw_draw_prims (ctx=0x7ffff7fd0040, arrays=0x70e018, prim=0x70c5ac, nr_prims=1, ib=0x0, index_bounds_valid=, min_index=0, max_index=3, tfb_vertcount=0x0) at brw_draw.c:566 #12 0x00007fffea6bf078 in vbo_exec_vtx_flush (exec=0x70bd70, keepUnmapped=1 '\001') at vbo/vbo_exec_draw.c:407 #13 0x00007fffea6b434c in vbo_exec_FlushVertices_internal (exec=0x70bd70, unmap=) at vbo/vbo_exec_api.c:444 #14 0x00007fffea6bcdec in vbo_exec_FlushVertices (ctx=0x7ffff7fd0040, flags=) at vbo/vbo_exec_api.c:1195 #15 0x00007fffea68219e in _mesa_BindTexture (target=3553, texName=0) at main/texobj.c:1123 #16 0x00007fffeb7c2242 in GLTexture::disable() () from /usr/lib/compiz/libopengl.so #17 0x00007fffe29f27ae in unity::UnityScreen::paintPanelShadow(GLMatrix const&) () from /usr/lib/compiz/libunityshell.so #18 0x00007fffe29fd7aa in unity::UnityWindow::glDraw(GLMatrix const&, GLFragment::Attrib&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libunityshell.so #19 0x00007fffeb7ab28a in GLWindow::glDraw(GLMatrix const&, GLFragment::Attrib&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so #20 0x00007fffeb7ab6a4 in GLWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so #21 0x00007fffe2dd91d8 in WallWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libwall.so #22 0x00007fffeb7ab64c in GLWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so #23 0x00007fffe29f3911 in unity::UnityWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libunityshell.so #24 0x00007fffeb7ab64c in GLWindow::glPaint(GLWindowPaintAttrib const&, GLMatrix const&, CompRegion const&, unsigned int) () from /usr/lib/compiz/libopengl.so #25 0x00007fffeb7abb79 in PrivateGLScreen::paintOutputRegion(GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libopengl.so #26 0x00007fffeb7ac047 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libopengl.so #27 0x00007fffeb7abf79 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libopengl.so #28 0x00007fffe2dd2a0f in WallScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libwall.so #29 0x00007fffeb7abf79 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libopengl.so #30 0x00007fffe29fd97e in unity::UnityScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libunityshell.so #31 0x00007fffeb7abf79 in GLScreen::glPaintOutput(GLScreenPaintAttrib const&, GLMatrix const&, CompRegion const&, CompOutput*, unsigned int) () from /usr/lib/compiz/libopengl.so #32 0x00007fffeb7bbfaf in PrivateGLScreen::paintOutputs(std::list >&, unsigned int, CompRegion const&) () from /usr/lib/compiz/libopengl.so #33 0x00007fffebde92b3 in CompositeScreen::paint(std::list >&, unsigned int) () from /usr/lib/compiz/libcomposite.so #34 0x00007fffebdeabc7 in CompositeScreen::handlePaintTimeout() () from /usr/lib/compiz/libcomposite.so #35 0x00007ffff7ba1e5b in CompTimer::triggerCallback() () from /usr/lib/libcompiz_core.so.ABI-20120305 #36 0x00007ffff7ba1f5f in CompTimeoutSource::callback() () from /usr/lib/libcompiz_core.so.ABI-20120305 #37 0x00007ffff7ba140d in CompTimeoutSource::dispatch(sigc::slot_base*) () from /usr/lib/libcompiz_core.so.ABI-20120305 #38 0x00007ffff60a2f2f in Glib::Source::dispatch_vfunc(_GSource*, int (*)(void*), void*) () from /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so.1 #39 0x00007ffff5baad53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #40 0x00007ffff5bab0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #41 0x00007ffff5bab49a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 Attaching strace reveals that compiz is calling poll() and recvfrom() on the X11 socket in a tight loop.