Bug 924396 - gnome-shell switching to All applications is very slow
Summary: gnome-shell switching to All applications is very slow
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: mesa
Version: 19
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Adam Jackson
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-03-21 17:16 UTC by Jeff Bastian
Modified: 2013-04-18 13:57 UTC (History)
7 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2013-04-18 13:57:26 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Jeff Bastian 2013-03-21 17:16:37 UTC
Description of problem:
Switching from Frequent to All applications in Gnome Shell is very slow.  It takes 30+ seconds to show the All applications screen and top shows the gnome-shell using 100% CPU the entire time.  And then if I try to scroll the list, it takes another 30+ seconds to respond.

Version-Release number of selected component (if applicable):
gnome-shell-3.7.92-2.fc19.x86_64

How reproducible:
every time

Steps to Reproduce:
1. bring up Gnome Shell Activities
2. click Applications grid icon
3. switch from Frequent to All applications
  
Actual results:
hurry up and wait for a few minutes for the icons to appear

Expected results:
near instant list of all applications on the system

Additional info:

Comment 1 Jeff Bastian 2013-03-21 17:45:31 UTC
strace shows lots of ioctls while it's busy processing whatever it's doing:

$ strace -t -p `pidof gnome-shell`
...
12:44:24 ioctl(7, VIDIOC_INT_RESET, 0x7fff63cecd50) = 0
12:44:24 ioctl(7, VIDIOC_INT_RESET, 0x7fff63cecd90) = 0
12:44:24 ioctl(7, 0xc0086457, 0x7fff63cec940) = 0
12:44:24 ioctl(7, VIDIOC_INT_RESET, 0x7fff63cec9a0) = 0
...

$ ls -l /proc/`pidof gnome-shell`/fd/7
lrwx------. 1 user user 64 Mar 21 12:19 /proc/30896/fd/7 -> /dev/dri/card0

Comment 2 Jeff Bastian 2013-03-21 18:21:40 UTC
I attached gdb to the gnome-shell process and then switched from Frequent to All applications.  I interrupted it with CTRL-C and then ran:

(gdb) t a a bt

Thread 13 (Thread 0x7fc643fff700 (LWP 1579)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x0000003761a879b5 in g_cond_wait_until (cond=cond@entry=0x1c2c798, 
    mutex=mutex@entry=0x1c2c790, end_time=end_time@entry=7317190805)
    at gthread-posix.c:859
#2  0x0000003761a1eac1 in g_async_queue_pop_intern_unlocked (
    queue=queue@entry=0x1c2c790, wait=wait@entry=1, 
    end_time=end_time@entry=7317190805) at gasyncqueue.c:424
#3  0x0000003761a1f04b in g_async_queue_timeout_pop (queue=0x1c2c790, 
    timeout=timeout@entry=15000000) at gasyncqueue.c:545
#4  0x0000003761a6d006 in g_thread_pool_wait_for_new_pool ()
    at gthreadpool.c:169
#5  g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:366
#6  0x0000003761a6c575 in g_thread_proxy (data=0x34804f0) at gthread.c:798
#7  0x000000375f607c53 in start_thread (arg=0x7fc643fff700)
    at pthread_create.c:308
#8  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 6 (Thread 0x7fc675045700 (LWP 1117)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003761a482d4 in g_main_context_poll (priority=2147483647, n_fds=5, 
    fds=0x7fc670005c20, timeout=-1, context=0x1900e40) at gmain.c:3995
#2  g_main_context_iterate (context=0x1900e40, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3696
#3  0x0000003761a4873a in g_main_loop_run (loop=0x1900dd0) at gmain.c:3895
#4  0x0000003762ace3b6 in gdbus_shared_thread_func (user_data=0x1900e10)
    at gdbusprivate.c:278
#5  0x0000003761a6c575 in g_thread_proxy (data=0x18fc320) at gthread.c:798
#6  0x000000375f607c53 in start_thread (arg=0x7fc675045700)
    at pthread_create.c:308
#7  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 5 (Thread 0x7fc66ffff700 (LWP 1118)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003761a482d4 in g_main_context_poll (priority=2147483647, n_fds=1, 
    fds=0x7fc6680010c0, timeout=-1, context=0x192c220) at gmain.c:3995
#2  g_main_context_iterate (context=context@entry=0x192c220, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3696
#3  0x0000003761a483dc in g_main_context_iteration (context=0x192c220, 
    may_block=1) at gmain.c:3762
#4  0x00007fc67461294d in dconf_gdbus_worker_thread ()
   from /usr/lib64/gio/modules/libdconfsettings.so
#5  0x0000003761a6c575 in g_thread_proxy (data=0x191d590) at gthread.c:798
#6  0x000000375f607c53 in start_thread (arg=0x7fc66ffff700)
    at pthread_create.c:308
#7  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 4 (Thread 0x7fc66efc1700 (LWP 1120)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x000000378b831091 in poll (__timeout=-1, __nfds=2, __fds=0x7fc65c0048d0)
    at /usr/include/bits/poll2.h:46
#2  poll_func (ufds=0x7fc65c0048d0, nfds=2, timeout=-1, userdata=0x197c740)
    at pulse/thread-mainloop.c:69
#3  0x000000378b822a0c in pa_mainloop_poll (m=m@entry=0x198cc50)
    at pulse/mainloop.c:854
#4  0x000000378b82309e in pa_mainloop_iterate (m=m@entry=0x198cc50, 
    block=block@entry=1, retval=retval@entry=0x0) at pulse/mainloop.c:936
#5  0x000000378b823150 in pa_mainloop_run (m=0x198cc50, 
    retval=retval@entry=0x0) at pulse/mainloop.c:954
#6  0x000000378b831043 in thread (userdata=0x1988630)
    at pulse/thread-mainloop.c:88
#7  0x0000003789246eb8 in internal_thread_func (userdata=0x19e3730)
    at pulsecore/thread-posix.c:83
#8  0x000000375f607c53 in start_thread (arg=0x7fc66efc1700)
    at pthread_create.c:308
#9  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 3 (Thread 0x7fc66e7c0700 (LWP 1121)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000003775c22ef0 in PR_WaitCondVar (cvar=0x19eeea0, timeout=4294967295)
    at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:385
#2  0x0000003786ec4de1 in threadLoop (rt=0x1abf600, this=0x1abf878)
    at jsgc.cpp:2084
#3  js::GCHelperThread::threadMain (arg=0x1abf600) at jsgc.cpp:2070
#4  0x0000003775c280e3 in _pt_root (arg=0x19ef820)
    at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:156
#5  0x000000375f607c53 in start_thread (arg=0x7fc66e7c0700)
    at pthread_create.c:308
#6  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7fc663ffe700 (LWP 1407)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003761a482d4 in g_main_context_poll (priority=2147483647, n_fds=1, 
    fds=0x7fc654052a40, timeout=-1, context=0x3663fb0) at gmain.c:3995
#2  g_main_context_iterate (context=context@entry=0x3663fb0, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3696
#3  0x0000003761a483dc in g_main_context_iteration (context=0x3663fb0, 
    may_block=may_block@entry=1) at gmain.c:3762
#4  0x0000003761a48429 in glib_worker_main (data=<optimized out>)
    at gmain.c:5427
#5  0x0000003761a6c575 in g_thread_proxy (data=0x352c8a0) at gthread.c:798
#6  0x000000375f607c53 in start_thread (arg=0x7fc663ffe700)
    at pthread_create.c:308
#7  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7fc67c1dda00 (LWP 1106)):
#0  0x00007fc6756b5d80 in fetch_vector1 () from /lib64/libdricore9.1.0.so.1
#1  0x00007fc6756b7e19 in _mesa_execute_program ()
   from /lib64/libdricore9.1.0.so.1
#2  0x00007fc675608fa6 in _swrast_exec_fragment_program ()
   from /lib64/libdricore9.1.0.so.1
#3  0x00007fc67560f5c1 in _swrast_write_rgba_span ()
   from /lib64/libdricore9.1.0.so.1
#4  0x00007fc6756377e3 in general_triangle () from /lib64/libdricore9.1.0.so.1
#5  0x00007fc6756451fd in quadfunc_rgba () from /lib64/libdricore9.1.0.so.1
#6  0x00007fc6755e0ac3 in _tnl_render_quads_verts ()
   from /lib64/libdricore9.1.0.so.1
#7  0x00007fc6755e1e8a in run_render () from /lib64/libdricore9.1.0.so.1
#8  0x00007fc6755dc92d in _tnl_run_pipeline () from /lib64/libdricore9.1.0.so.1
#9  0x00007fc675a9d979 in intelRunPipeline () from /usr/lib64/dri/i915_dri.so
#10 0x00007fc6755dd27e in _tnl_draw_prims () from /lib64/libdricore9.1.0.so.1
#11 0x00007fc6755dda0e in _tnl_vbo_draw_prims ()
   from /lib64/libdricore9.1.0.so.1
#12 0x00007fc6755ca6e6 in vbo_rebase_prims () from /lib64/libdricore9.1.0.so.1
#13 0x00007fc6755dd8eb in _tnl_draw_prims () from /lib64/libdricore9.1.0.so.1
#14 0x00007fc6755dda0e in _tnl_vbo_draw_prims ()
   from /lib64/libdricore9.1.0.so.1
#15 0x00007fc6755c7b44 in vbo_draw_arrays () from /lib64/libdricore9.1.0.so.1
#16 0x000000379205b936 in _cogl_journal_flush_modelview_and_entries (
    batch_start=<optimized out>, batch_len=1, data=0x7fffbf7df680)
    at ./cogl-journal.c:305
#17 0x000000379205b045 in batch_and_call (entries=<optimized out>, 
    n_entries=<optimized out>, 
    can_batch_callback=0x379205b9a0 <compare_entry_pipelines>, 
    batch_callback=0x379205bdc0 <_cogl_journal_flush_pipeline_and_entries>, 
    data=0x7fffbf7df680) at ./cogl-journal.c:257
#18 0x000000379205b704 in _cogl_journal_flush_texcoord_vbo_offsets_and_entries
    (batch_start=0x379b318, batch_len=59, data=0x7fffbf7df680)
    at ./cogl-journal.c:556
#19 0x000000379205b599 in _cogl_journal_flush_vbo_offsets_and_entries (
    batch_start=0x379b318, batch_len=59, data=<optimized out>)
    at ./cogl-journal.c:663
#20 0x000000379205b045 in batch_and_call (entries=<optimized out>, 
    n_entries=<optimized out>, 
    can_batch_callback=0x379205b0d0 <compare_entry_clip_stacks>, 
    batch_callback=0x379205b150 <_cogl_journal_flush_clip_stacks_and_entries>, 
    data=0x7fffbf7df680) at ./cogl-journal.c:257
#21 0x000000379205ca7b in _cogl_journal_flush (journal=0x18c0430)
    at ./cogl-journal.c:1375
#22 0x000000379205d91c in _cogl_framebuffer_flush_journal (
    framebuffer=<optimized out>) at ./cogl-framebuffer.c:595
#23 0x000000379202f628 in cogl_flush () at ./cogl.c:314
#24 0x0000003792060210 in cogl_onscreen_swap_buffers (onscreen=0x1c18ef0)
    at ./cogl-onscreen.c:184
#25 0x000000379303e322 in clutter_stage_cogl_redraw (
    stage_window=<optimized out>) at cogl/clutter-stage-cogl.c:643
#26 0x00000037930aae9e in clutter_stage_do_redraw (stage=0x1c2b900)
    at ./clutter-stage.c:1174
#27 _clutter_stage_do_update (stage=0x1c2b900) at ./clutter-stage.c:1232
#28 0x0000003793090528 in master_clock_update_stages (stages=0x3854c30, 
    master_clock=0x21b0ca0) at ./clutter-master-clock.c:457
#29 clutter_clock_dispatch (source=source@entry=0x21b1940, 
    callback=<optimized out>, user_data=<optimized out>)
    at ./clutter-master-clock.c:589
#30 0x0000003761a47fe6 in g_main_dispatch (context=0x747e00) at gmain.c:3054
#31 g_main_context_dispatch (context=context@entry=0x747e00) at gmain.c:3630
#32 0x0000003761a48338 in g_main_context_iterate (context=0x747e00, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3701
#33 0x0000003761a4873a in g_main_loop_run (loop=0x74aaf0) at gmain.c:3895
#34 0x00000037724584c1 in meta_run () at core/main.c:556
#35 0x0000000000401f59 in main (argc=1, argv=0x7fffbf7dfc58) at main.c:430
(gdb) call gjs_dumpstack()
(gdb) 





Unfortunately I don't know where the gjs_dumpstack output went.  I don't have a ~/.xsession-errors nor a ~/.cache/gdm/session.log file, and journalctl doesn't show anything:

$ journalctl -b
Showing user generated messages only. Users in the group 'systemd-journal' can see all messages. Pass -q to turn this notice off.
-- Logs begin at Sun 2013-02-03 10:32:00 CST, end at Wed 2013-03-20 07:16:17 CDT

Running journalctl as root only shows this:
Mar 21 13:01:12 localhost.localdomain /etc/gdm/Xsession[843]: == Stack trace for context 0x193da80 ==

Comment 3 Jeff Bastian 2013-03-21 18:32:14 UTC
Hmm, switching to software rendering speeds things up considerably.  The All applications icons appear in just a second or so (as fast as can be expected with software rendering).

 LIBGL_ALWAYS_SOFTWARE=1 gnome-shell --replace


Switching back to GPU rendering really slows things down again.  This might be a bug in the intel graphics driver.

Comment 4 Jeff Bastian 2013-03-21 18:51:26 UTC
I installed some more debuginfo packages and got a better backtrace:

^C
Program received signal SIGINT, Interrupt.
store_vector4 (inst=inst@entry=0x542d1d0, machine=machine@entry=0x1ee3380, 
    value=value@entry=0x7fffeeaeec50)
    at ../../../src/mesa/program/prog_execute.c:518
518	   if (inst->CondUpdate) {
(gdb) t a a bt

Thread 13 (Thread 0x7f643f6ff700 (LWP 2661)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:238
#1  0x0000003761a879b5 in g_cond_wait_until (cond=cond@entry=0x3680958, 
    mutex=mutex@entry=0x3680950, end_time=end_time@entry=9953500557)
    at gthread-posix.c:859
#2  0x0000003761a1eac1 in g_async_queue_pop_intern_unlocked (
    queue=queue@entry=0x3680950, wait=wait@entry=1, 
    end_time=end_time@entry=9953500557) at gasyncqueue.c:424
#3  0x0000003761a1f04b in g_async_queue_timeout_pop (queue=0x3680950, 
    timeout=timeout@entry=15000000) at gasyncqueue.c:545
#4  0x0000003761a6d006 in g_thread_pool_wait_for_new_pool ()
    at gthreadpool.c:169
#5  g_thread_pool_thread_proxy (data=<optimized out>) at gthreadpool.c:366
#6  0x0000003761a6c575 in g_thread_proxy (data=0x7f6464001a30) at gthread.c:798
#7  0x000000375f607c53 in start_thread (arg=0x7f643f6ff700)
    at pthread_create.c:308
#8  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 6 (Thread 0x7f64736b6700 (LWP 2414)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003761a482d4 in g_main_context_poll (priority=2147483647, n_fds=5, 
    fds=0x7f646c0011b0, timeout=-1, context=0x1d23ba0) at gmain.c:3995
#2  g_main_context_iterate (context=0x1d23ba0, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3696
#3  0x0000003761a4873a in g_main_loop_run (loop=0x1d23b30) at gmain.c:3895
#4  0x0000003762ace3b6 in gdbus_shared_thread_func (user_data=0x1d23b70)
    at gdbusprivate.c:278
#5  0x0000003761a6c575 in g_thread_proxy (data=0x1d1ed90) at gthread.c:798
#6  0x000000375f607c53 in start_thread (arg=0x7f64736b6700)
    at pthread_create.c:308
#7  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 5 (Thread 0x7f64719d2700 (LWP 2415)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003761a482d4 in g_main_context_poll (priority=2147483647, n_fds=1, 
    fds=0x7f64640010c0, timeout=-1, context=0x2fd4670) at gmain.c:3995
#2  g_main_context_iterate (context=context@entry=0x2fd4670, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3696
#3  0x0000003761a483dc in g_main_context_iteration (
    context=context@entry=0x2fd4670, may_block=may_block@entry=1)
    at gmain.c:3762
#4  0x00007f64719d994d in dconf_gdbus_worker_thread (user_data=0x2fd4670)
    at dconf-gdbus-thread.c:81
#5  0x0000003761a6c575 in g_thread_proxy (data=0x2fcfb20) at gthread.c:798
#6  0x000000375f607c53 in start_thread (arg=0x7f64719d2700)
    at pthread_create.c:308
#7  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 4 (Thread 0x7f6470fca700 (LWP 2416)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x000000378b831091 in poll (__timeout=-1, __nfds=2, __fds=0x7f64680048d0)
    at /usr/include/bits/poll2.h:46
#2  poll_func (ufds=0x7f64680048d0, nfds=2, timeout=-1, userdata=0x2fddf90)
    at pulse/thread-mainloop.c:69
#3  0x000000378b822a0c in pa_mainloop_poll (m=m@entry=0x2fdde80)
    at pulse/mainloop.c:854
#4  0x000000378b82309e in pa_mainloop_iterate (m=m@entry=0x2fdde80, 
    block=block@entry=1, retval=retval@entry=0x0) at pulse/mainloop.c:936
#5  0x000000378b823150 in pa_mainloop_run (m=0x2fdde80, 
    retval=retval@entry=0x0) at pulse/mainloop.c:954
#6  0x000000378b831043 in thread (userdata=0x1cd5510)
    at pulse/thread-mainloop.c:88
#7  0x0000003789246eb8 in internal_thread_func (userdata=0x2fd3280)
    at pulsecore/thread-posix.c:83
#8  0x000000375f607c53 in start_thread (arg=0x7f6470fca700)
    at pthread_create.c:308
#9  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 3 (Thread 0x7f645fffe700 (LWP 2417)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x0000003775c22ef0 in PR_WaitCondVar (cvar=0x304cb10, timeout=4294967295)
    at ../../../mozilla/nsprpub/pr/src/pthreads/ptsynch.c:385
#2  0x0000003786ec4de1 in threadLoop (rt=0x2fe5a40, this=0x2fe5cb8)
    at jsgc.cpp:2084
#3  js::GCHelperThread::threadMain (arg=0x2fe5a40) at jsgc.cpp:2070
#4  0x0000003775c280e3 in _pt_root (arg=0x304cbb0)
    at ../../../mozilla/nsprpub/pr/src/pthreads/ptthread.c:156
#5  0x000000375f607c53 in start_thread (arg=0x7f645fffe700)
    at pthread_create.c:308
#6  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7f644f1a4700 (LWP 2486)):
#0  0x000000375f2ea8fd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003761a482d4 in g_main_context_poll (priority=2147483647, n_fds=1, 
    fds=0x7f6448002760, timeout=-1, context=0x44f5cb0) at gmain.c:3995
#2  g_main_context_iterate (context=context@entry=0x44f5cb0, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3696
#3  0x0000003761a483dc in g_main_context_iteration (context=0x44f5cb0, 
    may_block=may_block@entry=1) at gmain.c:3762
#4  0x0000003761a48429 in glib_worker_main (data=<optimized out>)
    at gmain.c:5427
#5  0x0000003761a6c575 in g_thread_proxy (data=0x4546940) at gthread.c:798
#6  0x000000375f607c53 in start_thread (arg=0x7f644f1a4700)
    at pthread_create.c:308
#7  0x000000375f2f4ecd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7f647a5a1a00 (LWP 2413)):
#0  store_vector4 (inst=inst@entry=0x542d1d0, machine=machine@entry=0x1ee3380, 
    value=value@entry=0x7fffeeaeec50)
    at ../../../src/mesa/program/prog_execute.c:518
#1  0x00007f647227f73a in _mesa_execute_program (ctx=ctx@entry=0x1ea3050, 
    machine=machine@entry=0x1ee3380)
    at ../../../src/mesa/program/prog_execute.c:661
#2  0x00007f64721cefa6 in run_program (start=0, end=<optimized out>, 
    span=0x7fffeeaef840, ctx=0x1ea3050)
    at ../../../src/mesa/swrast/s_fragprog.c:222
#3  _swrast_exec_fragment_program (ctx=0x1ea3050, span=0x7fffeeaef840)
    at ../../../src/mesa/swrast/s_fragprog.c:279
#4  0x00007f64721d55c1 in _swrast_write_rgba_span (ctx=ctx@entry=0x1ea3050, 
    span=span@entry=0x7fffeeaef840) at ../../../src/mesa/swrast/s_span.c:1203
#5  0x00007f64721fd7e3 in general_triangle (ctx=0x1ea3050, v0=<optimized out>, 
    v1=<optimized out>, v2=0x2d68758)
    at ../../../src/mesa/swrast/s_tritemp.h:819
#6  0x00007f647220b1fd in quadfunc_rgba (ctx=0x1ea3050, v0=<optimized out>, 
    v1=1, v2=2, v3=3) at ../../../src/mesa/swrast_setup/ss_tritmp.h:232
#7  0x00007f64721a6ac3 in _tnl_render_quads_verts (ctx=0x1ea3050, 
    start=<optimized out>, count=4, flags=<optimized out>)
    at ../../../src/mesa/tnl/t_vb_rendertmp.h:383
#8  0x00007f64721a7e8a in run_render (ctx=0x1ea3050, stage=<optimized out>)
    at ../../../src/mesa/tnl/t_vb_render.c:321
#9  0x00007f64721a292d in _tnl_run_pipeline (ctx=ctx@entry=0x1ea3050)
    at ../../../src/mesa/tnl/t_pipeline.c:163
#10 0x00007f647264a979 in intelRunPipeline (ctx=0x1ea3050) at intel_tris.c:1086
#11 0x00007f64721a327e in _tnl_draw_prims (ctx=ctx@entry=0x1ea3050, 
    arrays=arrays@entry=0x7fffeeaf0570, prim=prim@entry=0x540a040, 
    nr_prims=nr_prims@entry=1, ib=ib@entry=0x0, min_index=<optimized out>, 
    max_index=3) at ../../../src/mesa/tnl/t_draw.c:525
#12 0x00007f64721a3a0e in _tnl_vbo_draw_prims (ctx=0x1ea3050, prim=0x540a040, 
    nr_prims=1, ib=0x0, index_bounds_valid=<optimized out>, min_index=0, 
    max_index=3, tfb_vertcount=0x0) at ../../../src/mesa/tnl/t_draw.c:425
#13 0x00007f64721906e6 in vbo_rebase_prims (ctx=ctx@entry=0x1ea3050, 
    arrays=arrays@entry=0x2bfc120, prim=0x540a040, prim@entry=0x7fffeeaf1160, 
    nr_prims=nr_prims@entry=1, ib=ib@entry=0x0, min_index=<optimized out>, 
    max_index=max_index@entry=227, 
    draw=draw@entry=0x7f64721a39b0 <_tnl_vbo_draw_prims>)
    at ../../../src/mesa/vbo/vbo_rebase.c:233
#14 0x00007f64721a38eb in _tnl_draw_prims (ctx=ctx@entry=0x1ea3050, 
    arrays=arrays@entry=0x2bfc120, prim=prim@entry=0x7fffeeaf1160, 
    nr_prims=nr_prims@entry=1, ib=ib@entry=0x0, min_index=224, max_index=227)
    at ../../../src/mesa/tnl/t_draw.c:468
#15 0x00007f64721a3a0e in _tnl_vbo_draw_prims (ctx=0x1ea3050, 
    prim=0x7fffeeaf1160, nr_prims=1, ib=0x0, 
    index_bounds_valid=<optimized out>, min_index=224, max_index=227, 
    tfb_vertcount=0x0) at ../../../src/mesa/tnl/t_draw.c:425
#16 0x00007f647218db44 in vbo_draw_arrays (ctx=0x1ea3050, mode=7, start=224, 
    count=4, numInstances=1, baseInstance=0)
    at ../../../src/mesa/vbo/vbo_exec_array.c:619
#17 0x000000379205b936 in _cogl_journal_flush_modelview_and_entries (
    batch_start=<optimized out>, batch_len=1, data=0x7fffeeaf1430)
    at ./cogl-journal.c:305
#18 0x000000379205b045 in batch_and_call (entries=<optimized out>, 
    n_entries=<optimized out>, 
    can_batch_callback=0x379205b9a0 <compare_entry_pipelines>, 
    batch_callback=0x379205bdc0 <_cogl_journal_flush_pipeline_and_entries>, 
    data=0x7fffeeaf1430) at ./cogl-journal.c:257
#19 0x000000379205b704 in _cogl_journal_flush_texcoord_vbo_offsets_and_entries
    (batch_start=0x4632b58, batch_len=70, data=0x7fffeeaf1430)
    at ./cogl-journal.c:556
#20 0x000000379205b599 in _cogl_journal_flush_vbo_offsets_and_entries (
    batch_start=0x4632b58, batch_len=70, data=<optimized out>)
    at ./cogl-journal.c:663
#21 0x000000379205b045 in batch_and_call (entries=<optimized out>, 
    n_entries=<optimized out>, 
    can_batch_callback=0x379205b0d0 <compare_entry_clip_stacks>, 
    batch_callback=0x379205b150 <_cogl_journal_flush_clip_stacks_and_entries>, 
    data=0x7fffeeaf1430) at ./cogl-journal.c:257
#22 0x000000379205ca7b in _cogl_journal_flush (journal=0x1d28c30)
    at ./cogl-journal.c:1375
#23 0x000000379205d91c in _cogl_framebuffer_flush_journal (
    framebuffer=<optimized out>) at ./cogl-framebuffer.c:595
#24 0x000000379202f628 in cogl_flush () at ./cogl.c:314
#25 0x0000003792060210 in cogl_onscreen_swap_buffers (onscreen=0x31b9c00)
    at ./cogl-onscreen.c:184
#26 0x000000379303e322 in clutter_stage_cogl_redraw (
    stage_window=<optimized out>) at cogl/clutter-stage-cogl.c:643
#27 0x00000037930aae9e in clutter_stage_do_redraw (stage=0x31858f0)
    at ./clutter-stage.c:1174
#28 _clutter_stage_do_update (stage=0x31858f0) at ./clutter-stage.c:1232
#29 0x0000003793090528 in master_clock_update_stages (stages=0x4782fa0, 
    master_clock=0x2fd64f0) at ./clutter-master-clock.c:457
#30 clutter_clock_dispatch (source=source@entry=0x30e30e0, 
    callback=<optimized out>, user_data=<optimized out>)
    at ./clutter-master-clock.c:589
#31 0x0000003761a47fe6 in g_main_dispatch (context=0x1cc5e00) at gmain.c:3054
#32 g_main_context_dispatch (context=context@entry=0x1cc5e00) at gmain.c:3630
#33 0x0000003761a48338 in g_main_context_iterate (context=0x1cc5e00, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3701
#34 0x0000003761a4873a in g_main_loop_run (loop=0x1cc8b20) at gmain.c:3895
#35 0x00000037724584c1 in meta_run () at core/main.c:556
#36 0x0000000000401f59 in main (argc=1, argv=0x7fffeeaf1a08) at main.c:430

Comment 5 Jeff Bastian 2013-03-21 20:27:08 UTC
I created a new user for testing so now my gdm login screen has enough users to require a scrollbar, and now I'm seeing the same very slow behavior when I try to select a user to login.

I move the mouse to highlight a new user and gnome-shell takes 100% CPU for a while.  Eventually it settles down and I can finally login.

From IRC:

<ajax> the shader we think you're having trouble with only happens in a scroll view, yes.
<drago01> jbastian: no it is caused by the fade at the edge of the scollview (that's what the shader is doing)
<drago01> jbastian: but that means that this is a really bad bug
<drago01> jbastian: it affects chats too
<jbastian> hmm, ok
<drago01> or menus with a scrollbar
<drago01> etc

Comment 6 Adam Jackson 2013-03-21 20:28:05 UTC
Moving to Mesa as I think this is a gen3 bug.

Comment 7 Jeff Bastian 2013-03-21 21:13:59 UTC
The lock screen seems to be affected too: trying to unlock the screen requires hitting ESC and waiting for 30 seconds or so for a password prompt to appear.

Then, if you make a typo on the password when unlocking, the cursor just spins and spins forever.


If I restart gnome-shell with software rendering (LIBGL_ALWAYS_SOFTWARE=y) then the unlock screen works ok, and if I enter the wrong password, a yellow error message appears "Authentication failure" under the text field for the password, and the text field slides up a little bit.  That effect must be also causing problems for the Intel 945GM.

Comment 8 drago01 2013-03-29 10:04:58 UTC
(In reply to comment #7)
> The lock screen seems to be affected too: trying to unlock the screen
> requires hitting ESC and waiting for 30 seconds or so for a password prompt
> to appear.
> 
> Then, if you make a typo on the password when unlocking, the cursor just
> spins and spins forever.
> 
> 
> If I restart gnome-shell with software rendering (LIBGL_ALWAYS_SOFTWARE=y)
> then the unlock screen works ok, and if I enter the wrong password, a yellow
> error message appears "Authentication failure" under the text field for the
> password, and the text field slides up a little bit.  That effect must be
> also causing problems for the Intel 945GM.

We have added workarounds for this in 3.8 ... does it work better now?

Comment 9 Jeff Bastian 2013-04-01 15:02:44 UTC
It does!  I updated to the 3.8.0 packages and it works normally again.  Thanks!

Comment 11 Adam Jackson 2013-04-18 13:57:26 UTC
Closing per comment 9.


Note You need to log in before you can comment on or make changes to this bug.