Intel 945 backtrace
Peter Clifton
pcjc2 at cam.ac.uk
Wed Dec 31 10:40:56 PST 2008
Hi guys,
I've been testing the beta release of the 2.6 series Intel driver
against a 2.6.28 kernel, with UXA and DRI2 enabled.
(I had 'Option "DRI2" "off"' in the Xorg.conf, but apparently that was
ignored - perhaps I put it in the wrong place, or this is not the right
option to control DRI2).
I've been noticing really poor performance whilst rendering lots of
small lines, something which x11perf -line10 seems to bear out:
x11perf - X11 performance program, version 1.2
The X.Org Foundation server version 10599003 on :0.0
from pcjc2lap
Wed Dec 31 18:36:35 2008
Sync time adjustment is 0.0708 msecs.
600000 reps @ 0.0100 msec (100000.0/sec): 10-pixel line
600000 reps @ 0.0100 msec (100000.0/sec): 10-pixel line
600000 reps @ 0.0100 msec (100000.0/sec): 10-pixel line
600000 reps @ 0.0100 msec (100000.0/sec): 10-pixel line
600000 reps @ 0.0100 msec ( 99900.0/sec): 10-pixel line
3000000 trep @ 0.0100 msec (100000.0/sec): 10-pixel line
When profiling, it appears the hot-spot is in the kernel, with ~90% of
total system time spent waiting in there.
I upgraded to a git version of sysprof today, and this is able to trace
further inside the kernel. Hopefully this debugging information will be
of use (I can send the whole capture file to anyone who wants it).
This was traced whilst running x11perf -line10. The timings above were
recorded without sysprof tracing, in case the sysprof overhead skewed
the timings.
kernel 0.00 90.63
sysenter_do_call 0.01 81.78
sys_ioctl 0.00 74.40
do_vfs_ioctl 0.06 74.36
vfs_ioctl 0.03 74.29
drm_ioctl 0.19 73.78
i915_gem_sw_finish_ioctl 0.00 65.23
i915_gem_object_flush_cpu_write_domain 0.00 65.21
i915_gem_clflush_object 0.00 65.21
drm_clflush_pages 47.95 64.06
kunmap_atomic 9.64 9.65
common_interrupt 0.00 0.01
native_flush_tlb_single 2.43 2.43
native_set_pte_at 2.15 2.15
native_make_pte 1.06 1.06
kmap_atomic 0.00 0.73
paravirt_get_lazy_mode 0.04 0.04
common_interrupt 0.00 0.01
kmap_atomic_prot 0.01 0.01
kunmap_atomic 1.09 1.09
common_interrupt 0.00 0.03
kmap_atomic 0.03 0.03
kref_get 0.01 0.01
mutex_lock 0.01 0.01
i915_gem_set_domain_ioctl 0.03 7.56
i915_gem_object_set_to_cpu_domain 0.03 7.41
i915_gem_clflush_object 0.00 7.37
drm_clflush_pages 5.46 7.23
kunmap_atomic 0.13 0.13
common_interrupt 0.00 0.01
i915_gem_object_wait_rendering 0.00 0.01
drm_gem_object_lookup 0.00 0.03
i915_gem_object_set_to_gtt_domain 0.01 0.03
drm_gem_object_unreference 0.00 0.01
mutex_lock 0.01 0.01
kref_get 0.01 0.01
_cond_resched 0.01 0.01
i915_gem_execbuffer 0.03 0.42
i915_gem_get_tiling 0.00 0.10
__kmalloc 0.10 0.10
kfree 0.07 0.07
mutex_unlock 0.04 0.04
drm_gem_object_unreference 0.01 0.01
i915_gem_throttle_ioctl 0.00 0.01
drm_gem_object_lookup 0.01 0.01
i915_gem_busy_ioctl 0.01 0.01
copy_from_user 0.01 0.01
block_ioctl 0.00 0.42
lock_kernel 0.01 0.01
copy_to_user 0.01 0.01
kfree 0.01 0.01
i915_gem_get_tiling 0.01 0.01
lock_kernel 0.01 0.01
fget_light 0.04 0.04
sys_select 0.00 3.58
sys_read 0.04 1.67
sys_writev 0.07 0.91
sys_setitimer 0.01 0.49
sys_close 0.00 0.33
sys_open 0.00 0.22
sys_poll 0.00 0.10
sys_socketcall 0.00 0.03
sys_stat64 0.00 0.01
fget_light 0.01 0.01
sys_mmap2 0.00 0.01
copy_from_user 0.01 0.01
native_flush_tlb_single 3.62 3.62
__ticket_spin_lock 2.07 2.07
read_hpet 1.24 1.24
work_resched 0.00 0.52
sysenter_past_esp 0.46 0.46
native_set_pte 0.13 0.13
fput 0.10 0.10
__ticket_spin_unlock 0.09 0.09
kernel_thread_helper 0.00 0.09
syscall_call 0.00 0.07
system_call 0.06 0.06
__ticket_spin_trylock 0.06 0.06
paravirt_get_lazy_mode 0.04 0.04
kmap_atomic_prot 0.03 0.03
common_interrupt 0.00 0.03
mutex_unlock 0.03 0.03
mutex_lock 0.03 0.03
sys_ioctl 0.01 0.01
pid_vnr 0.01 0.01
ioread32 0.01 0.01
path_get 0.01 0.01
apparmor_file_permission 0.01 0.01
_read_lock 0.01 0.01
apparmor_socket_recvmsg 0.01 0.01
kunmap_atomic 0.01 0.01
__free_pages 0.01 0.01
copy_from_user 0.01 0.01
get_slab 0.01 0.01
sys_read 0.01 0.01
kmap_atomic 0.01 0.01
scm_destroy 0.01 0.01
__kernel_vsyscall 0.00 0.00
Best regards,
--
Peter Clifton
Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA
Tel: +44 (0)7729 980173 - (No signal in the lab!)
More information about the xorg
mailing list