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

Reply via email to