performance work
Greg Smith
gregsmitholpc at gmail.com
Tue Dec 23 09:47:14 EST 2008
Jordan and Neil,
That's great work, thanks!
Eben, Neil and Sugar people,
Can you tell from the test descriptions below which of these operations
we are most likely to encounter in the XO GUI?
I think we can use the Cairo trace utility S found:
http://wiki.laptop.org/go/Performance_tuning#Other
Turn that on with logging then use the XO as normal (or as a kid would)
and generate the log file to see which are most common Cairo calls.
I know Jordan gets way over scheduled. Let's help him prove that fixing
a driver bug or two would benefit the UI performance, before he has to
move on...
Thanks,
Greg S
Jordan Crouse wrote:
> Greg Smith wrote:
>> Hi Jordan,
>>
>> Looks like we made a little more progress on graphics benchmarking.
>> See Neil's results below.
>>
>> I updated the feature page with the test results so far:
>> http://wiki.laptop.org/go/Feature_roadmap/General_UI_sluggishness
>>
>> What's next?
>>
>> Do we know enough now to target a particular section of the code for
>> optimization?
>>
>
> I ran the raw data through a script, and came up with a nice little
> summary of where we stand. My first general observation is that the
> numbers are skewed due to system activity - recall that X runs in user
> space, so it is subject to be preempted by the kernel. I think that the
> obviously high numbers in many of the results are due to NAND or
> wireless interrupts (example):
>
> 6: 2261923 (5.25 ms)
> 7: 16690761 (38.73 ms)
> 8: 2306919 (5.35 ms)
>
> You might want to re-acquire the numbers with wireless turned off and
> the system in a very quiet state. If you want to be extra careful, you
> can run the benchmarks in an empty X server (no sugar) and save the
> results to a ramfs backed directory to avoid NAND. You probably don't
> have to get _that_ extreme, but I don't want you to spend much time
> trying to investigate a path only to find out that the numbers are wrong
> due to a few writes(). In the results below, I tried to mitigate the
> damage somewhat by removing the highest and lowest value.
>
> The list below is sorted by delta between accel and un-accel, with the
> "worse" tests on top (i.e - the ones where accel is actually hurting
> you) - these are good candidates to be looked at. There are three
> reasons why unaccel would be faster then accel - 1) a bug in the accel
> code, 2) The accel path requires reading from video memory (which is
> very slow), and 3) the accel path doesn't punt to unaccel early enough.
>
> The first two on the list (textpath-xlib and texturedtext-xlib) toss up
> a huge red flag - I am guessing we are probably seeing a bug in the driver.
>
> All of the upsample and downsample entries are interesting, because the
> driver should be kicking back to the unaccelerated path - I'm guessing
> that 3) might be in effect here - though 73 ms is a long time.
>
> Most of the operations between 1ms and -1ms are probably going down the
> unaccelerated path. Most everything in there probably should be
> unaccelerated, with the possible exception of the 'over' operations -
> those are the easiest for the GPU to accelerate and the most heavily
> used, so you probably want to take a look at those.
>
> As before, I encourage you to investigate which operation are heavily
> used - if you don't use textured text very much, then optimizing it
> would be heavily on the geek points, but not very useful in the long haul.
>
> Jordan
> Test Accel Noaccel Delta
> ------------------------------------------------------------------
> textpath-xlib-textpath 1562.60 1345.12 217.48
> texturedtext-xlib-texturedtext 315.61 140.54 175.07
> downsample-nearest-xlib-512x512-redsquar 106.37 33.25 73.12
> downsample-bilinear-xlib-512x512-redsqua 96.57 35.22 61.35
> downsample-bilinear-xlib-512x512-primros 83.36 34.81 48.56
> downsample-nearest-xlib-512x512-lenna 78.18 29.83 48.35
> downsample-bilinear-xlib-512x512-lenna 83.91 36.32 47.59
> downsample-nearest-xlib-512x512-primrose 77.49 30.06 47.43
> upsample-nearest-xlib-48x48-todo 86.23 60.14 26.09
> upsample-bilinear-xlib-48x48-brokenlock 242.52 216.49 26.03
> upsample-bilinear-xlib-48x48-script 237.69 211.70 25.98
> upsample-bilinear-xlib-48x48-mail 234.40 208.43 25.97
> upsample-bilinear-xlib-48x48-todo 239.85 213.94 25.91
> upsample-nearest-xlib-48x48-script 81.67 57.02 24.65
> upsample-nearest-xlib-48x48-mail 78.99 54.42 24.57
> upsample-nearest-xlib-48x48-brokenlock 86.18 61.73 24.45
> upsample-nearest-48x48-script 61.95 57.46 4.49
> downsample-bilinear-512x512-redsquare 11.24 7.77 3.47
> solidtext-xlib-solidtext 11.70 9.51 2.19
> textpath-textpath 1081.14 1079.37 1.78
> texturedtext-texturedtext 112.33 111.79 0.54
> upsample-bilinear-48x48-todo 224.06 223.68 0.37
> upsample-nearest-48x48-brokenlock 64.46 64.16 0.30
> upsample-bilinear-48x48-brokenlock 226.51 226.25 0.26
> downsample-nearest-512x512-redsquare 2.43 2.23 0.19
> gradients-linear-gradients-linear 107.39 107.30 0.09
> over-640x480-empty 15.68 15.61 0.07
> over-640x480-opaque 20.19 20.12 0.07
> add-640x480-opaque 20.77 20.73 0.04
> upsample-nearest-48x48-todo 60.75 60.71 0.04
> add-640x480-transparentshapes 20.79 20.78 0.02
> add-640x480-shapes 20.76 20.74 0.02
> multiple-clip-rectangles-multiple clip r 1.23 1.22 0.01
> over-clipped-640x480-empty 0.95 0.94 0.01
> over-640x480-text 23.51 23.51 0.01
> downsample-bilinear-512x512-primrose 7.08 7.08 0.00
> multiple-clip-rectangles-xlib-multiple c 0.15 0.15 0.00
> over-clipped-640x480-opaque 1.22 1.22 0.00
> downsample-bilinear-512x512-lenna 7.03 7.04 -0.01
> over-clipped-640x480-shapes 1.23 1.24 -0.01
> downsample-nearest-512x512-primrose 2.03 2.05 -0.02
> downsample-nearest-512x512-lenna 2.03 2.05 -0.02
> over-640x480-transparentshapes 58.66 58.68 -0.02
> over-640x480-shapes 18.56 18.59 -0.03
> upsample-nearest-48x48-mail 54.71 54.77 -0.07
> add-640x480-text 20.70 20.77 -0.08
> solidtext-solidtext 42.83 42.94 -0.10
> add-640x480-empty 20.66 20.80 -0.13
> upsample-bilinear-48x48-mail 217.81 219.44 -1.63
> over-clipped-xlib-640x480-opaque 4.55 6.26 -1.71
> upsample-bilinear-48x48-script 220.89 222.80 -1.92
> over-clipped-xlib-640x480-empty 3.67 6.04 -2.38
> lines-lines 426.79 429.16 -2.38
> over-clipped-xlib-640x480-shapes 4.00 6.52 -2.51
> curves-curves 224.55 236.08 -11.53
> over-xlib-640x480-empty 29.88 48.30 -18.42
> curves-xlib-curves 245.46 264.19 -18.73
> gradients-linear-xlib-gradients-linear 132.35 151.62 -19.26
> over-xlib-640x480-opaque 29.92 53.04 -23.12
> add-xlib-640x480-transparentshapes 29.98 53.53 -23.54
> add-xlib-640x480-opaque 29.97 53.54 -23.57
> add-xlib-640x480-empty 29.93 53.61 -23.67
> add-xlib-640x480-shapes 30.05 53.77 -23.72
> add-xlib-640x480-text 29.75 53.59 -23.84
> over-xlib-640x480-shapes 29.77 54.93 -25.16
> over-xlib-640x480-text 29.83 57.75 -27.92
> over-xlib-640x480-transparentshapes 29.76 91.67 -61.91
> lines-xlib-lines 275.59 481.84 -206.25
>
>
>
>
>
>
>
>
More information about the Devel
mailing list