I've done some more profiling on the 16 vs. 24 bpp issue.
This time I used this test:
https://dev.laptop.org/git?p=sugar;a=blob;f=tests/graphics/hipposcalability.py
A simple speed test: I measured the time required to scroll down and up
one time all the generated list. Not extremely accurate, but I repeated the
test a few times with consistent results (+- 0.5 secs). Mean times:
xserver 1.4
16 bpp: 37.9
24 bpp: 40.7
xserver 1.3
16: 46.4
24: 50.1
At 24 bpp we're a little slower. 1.3 is 20% slower than 1.4. The pixman
migration patch makes the difference: 1.3 spend most of that 20% in memcpy().
The oprofile reports are from xserver 1.4. I don't see much difference
between 16 and 24, except that at 24 bpp, less time is spent in pixman and more
in amd_drv. At 16 bpp pixman_fill() takes twice the time.
Unfortunately without a working callgraph it's not very clear to me what's
happening in amd_drv. At 24bpp gp_wait_until_idle() takes twice the time...
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
TIMER:0|
samples| %|
------------------
1767 44.4305 Xorg
TIMER:0|
samples| %|
------------------
883 49.9717 libpixman-1.so.0.9.5
307 17.3741 amd_drv.so
224 12.6769 Xorg
160 9.0549 libc-2.6.so
143 8.0928 libexa.so
42 2.3769 libfb.so
6 0.3396 libextmod.so
1 0.0566 anon (tgid:2307 range:0xb7ee6000-0xb7ee7000)
1 0.0566 kbd_drv.so
1740 43.7516 python
TIMER:0|
samples| %|
------------------
587 33.7356 libcairo.so.2.11.5
245 14.0805 libpython2.5.so.1.0
185 10.6322 libc-2.6.so
155 8.9080 libgobject-2.0.so.0.1200.13
106 6.0920 libglib-2.0.so.0.1200.13
94 5.4023 libpangoft2-1.0.so.0.1600.4
78 4.4828 libpthread-2.6.so
78 4.4828 libpango-1.0.so.0.1600.4
64 3.6782 libhippocanvas-1.so.0.0.0
26 1.4943 libX11.so.6.2.0
19 1.0920 libxcb.so.1.0.0
18 1.0345 libXrender.so.1.3.0
15 0.8621 libpangocairo-1.0.so.0.1600.4
12 0.6897 libm-2.6.so
11 0.6322 hippo.so
10 0.5747 _cairo.so
9 0.5172 libxcb-xlib.so.0.0.0
6 0.3448 _gobject.so
5 0.2874 libgthread-2.0.so.0.1200.13
5 0.2874 libgdk-x11-2.0.so.0.1000.14
5 0.2874 libgtk-x11-2.0.so.0.1000.14
3 0.1724 libfreetype.so.6.3.15
2 0.1149 anon (tgid:2390 range:0xb7f9f000-0xb7fa0000)
1 0.0575 libX11.so.6.2.0
1 0.0575 timemodule.so
440 11.0636 vmlinux
....
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples % image name app name symbol name
359 9.0269 libpixman-1.so.0.9.5 Xorg pixman_rasterize_edges
326 8.1971 vmlinux vmlinux default_idle
245 6.1604 libpixman-1.so.0.9.5 Xorg pixman_fill
245 6.1604 libpython2.5.so.1.0 python (no symbols)
162 4.0734 amd_drv.so Xorg gp_color_bitmap_to_screen_blt
155 3.8974 libgobject-2.0.so.0.1200.13 python (no symbols)
113 2.8413 amd_drv.so Xorg gp_wait_until_idle
106 2.6653 libglib-2.0.so.0.1200.13 python (no symbols)
94 2.3636 libpangoft2-1.0.so.0.1600.4 python (no symbols)
78 1.9613 libpango-1.0.so.0.1600.4 python (no symbols)
64 1.6093 libhippocanvas-1.so.0.0.0 python (no symbols)
60 1.5087 libcairo.so.2.11.5 python _PointDistanceSquaredToSegment
56 1.4081 libc-2.6.so Xorg _int_malloc
50 1.2572 libc-2.6.so python _int_malloc
47 1.1818 libc-2.6.so python memcpy
40 1.0058 libc-2.6.so Xorg memcpy
37 0.9303 libpixman-1.so.0.9.5 Xorg __divdi3
34 0.8549 libpthread-2.6.so python pthread_mutex_lock
32 0.8046 libc-2.6.so python msort_with_tmp
30 0.7543 libcairo.so.2.11.5 python _cairo_bentley_ottmann_tessellate_polygon
27 0.6789 Xorg Xorg __divdi3
27 0.6789 libcairo.so.2.11.5 python _cairo_skip_list_insert
26 0.6538 libpixman-1.so.0.9.5 Xorg _pixman_edge_tMultiInit
25 0.6286 libpixman-1.so.0.9.5 Xorg pixman_sample_floor_y
23 0.5783 libc-2.6.so Xorg _int_free
23 0.5783 libcairo.so.2.11.5 python _cairo_bo_event_queue_insert_if_intersect_below_current_y
23 0.5783 libpixman-1.so.0.9.5 Xorg pixman_edge_init
....
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
TIMER:0|
samples| %|
------------------
1949 45.4736 Xorg
TIMER:0|
samples| %|
------------------
830 42.5859 libpixman-1.so.0.9.5
394 20.2155 amd_drv.so
364 18.6762 Xorg
162 8.3120 libc-2.6.so
148 7.5936 libexa.so
40 2.0523 libfb.so
4 0.2052 libextmod.so
3 0.1539 mouse_drv.so
2 0.1026 kbd_drv.so
1 0.0513 anon (tgid:2509 range:0xb7fc3000-0xb7fc4000)
1 0.0513 libdbe.so
1959 45.7070 python
TIMER:0|
samples| %|
------------------
662 33.7928 libcairo.so.2.11.5
318 16.2328 libpython2.5.so.1.0
220 11.2302 libc-2.6.so
166 8.4737 libgobject-2.0.so.0.1200.13
117 5.9724 libpthread-2.6.so
94 4.7984 libglib-2.0.so.0.1200.13
85 4.3389 libpango-1.0.so.0.1600.4
81 4.1348 libpangoft2-1.0.so.0.1600.4
65 3.3180 libhippocanvas-1.so.0.0.0
25 1.2762 libX11.so.6.2.0
24 1.2251 libxcb.so.1.0.0
16 0.8167 libgdk-x11-2.0.so.0.1000.14
14 0.7147 libXrender.so.1.3.0
13 0.6636 libgtk-x11-2.0.so.0.1000.14
10 0.5105 _gobject.so
8 0.4084 libm-2.6.so
8 0.4084 libpangocairo-1.0.so.0.1600.4
7 0.3573 libxcb-xlib.so.0.0.0
5 0.2552 libgthread-2.0.so.0.1200.13
5 0.2552 libX11.so.6.2.0
5 0.2552 hippo.so
4 0.2042 libdbus-1.so.3.2.0
3 0.1531 _cairo.so
1 0.0510 anon (tgid:2662 range:0xb7fd9000-0xb7fda000)
1 0.0510 libfreetype.so.6.3.15
1 0.0510 libwnck-1.so.18.2.10
1 0.0510 timemodule.so
340 7.9328 vmlinux
....
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
samples % image name app name symbol name
366 8.5394 libpixman-1.so.0.9.5 Xorg pixman_rasterize_edges
318 7.4195 libpython2.5.so.1.0 python (no symbols)
226 5.2730 amd_drv.so Xorg gp_wait_until_idle
173 4.0364 vmlinux vmlinux default_idle
170 3.9664 libpixman-1.so.0.9.5 Xorg pixman_fill
166 3.8731 libgobject-2.0.so.0.1200.13 python (no symbols)
137 3.1965 amd_drv.so Xorg gp_color_bitmap_to_screen_blt
94 2.1932 libglib-2.0.so.0.1200.13 python (no symbols)
85 1.9832 libpango-1.0.so.0.1600.4 python (no symbols)
81 1.8899 libpangoft2-1.0.so.0.1600.4 python (no symbols)
75 1.7499 libcairo.so.2.11.5 python _PointDistanceSquaredToSegment
65 1.5166 libhippocanvas-1.so.0.0.0 python (no symbols)
53 1.2366 libc-2.6.so python memcpy
48 1.1199 libc-2.6.so Xorg _int_malloc
47 1.0966 libc-2.6.so Xorg memcpy
46 1.0733 libc-2.6.so python _int_malloc
45 1.0499 libpthread-2.6.so python pthread_mutex_lock
41 0.9566 libc-2.6.so python msort_with_tmp
38 0.8866 libcairo.so.2.11.5 python _cairo_bentley_ottmann_tessellate_polygon
35 0.8166 libpthread-2.6.so python __pthread_mutex_unlock_usercnt
34 0.7933 Xorg Xorg __divdi3
32 0.7466 Xorg Xorg GrabMatchesSecond
30 0.7000 Xorg Xorg DetailSupersedesSecond
27 0.6300 libcairo.so.2.11.5 python _cairo_skip_list_insert
27 0.6300 libpixman-1.so.0.9.5 Xorg fbCompositeSrcAdd_8000x8000mmx
25 0.5833 Xorg Xorg CheckPassiveGrabsOnWindow
25 0.5833 libcairo.so.2.11.5 python cairo_bo_event_compare_pointers
24 0.5600 libcairo.so.2.11.5 python _cairo_bo_event_queue_insert_if_intersect_below_current_y
_______________________________________________
Devel mailing list
[email protected]
http://lists.laptop.org/listinfo/devel