Where olpc machine spending time when using web broswer

Dan Williams dcbw at redhat.com
Tue Mar 13 13:15:44 EDT 2007


On Tue, 2007-03-13 at 12:04 -0500, Vladimir Makarov wrote:
> William Cohen wrote:
> 
> > William Cohen wrote:
> >
> >> Looked at where the processor spends its time when browsing the web.
> >>
> >> Hardware configuration:
> >>
> >>  OLPC Beta 2 machine
> >>  Linksys USB200M USB 10/100 for ethernet connection
> >>  4GB memorex Mini Travel Drive for storage of image
> >>
> >>
> >> Software configuration:
> >>
> >>  /tmp/olpc-redhat-stream-development-build-299-20070308_1417-devel_ext3.img
> >>  kernel-2.6.21-20070309.olpc1p.dc5079fafb767e4
> >>  oprofile-0.9.2-3.fc6
> >
> >
> >
> > Re ran the experiment on build 301 and installed the 
> > xorg-x11-server-debuginfo-1.1.99.3-0.10.2.olpc1.i386.rpm on the olpc 
> > machine, so I could take a look at where time is being spent in libfb.so.
> 
> I don't know what version of gcc and options were used to compile the 
> packages.  If somebody points me where to look at this, I could be more 
> sure.  It looks to me that the packages were compiled without usage of 
> tunnning gcc to geode.  The div and mod insn are expensive in geode. 
>  Usage of div or shifts are choosen in gcc expmed.c and this is directed 
> by costs defined by -mtune or -march.
> 
> I already did gcc tunning to geode (pipeline description, code costs, 
> i386 port parameter values) and submitted it to the gcc mainline.  As I 
> know Jakub Julinek was going to backport this code to redhat gcc.  So I 
> can guess that if the right compiler and options are used, it will make 
> code faster (and several % smaller because -mtune=geode generates 
> smaller code that any other tuning).

I seem to recall that we have a gcc available that does geode tuning.
What's missing is to change the RPM_OPT_FLAGS in the olpc-1 buildroots
and then fork & recompile packages from package-cvs that we want to
optimize with geode.  That by definition means that we try to recompile
only the smallest set of packages we can since it's a branch off of FC6.

We'll need to check up on this further.  Vladimir, can you verify that
the version of gcc in FC6-updates right now does Geode optimizations for
us?

Thanks!
Dan

> I somebody need a help to speed up some (critical) code for OLPC by 
> choosing right options (like usage of mmx insn and vectorization and 
> other numerous possibilities), I could help too.  Please let me know. 
>  If I have an OLPC machine, I can do it.
> 
> >
> > # opreport -t 1 -l /usr/bin/Xorg
> > CPU: CPU with timer interrupt, speed 0 MHz (estimated)
> > Profiling through timer interrupt
> > samples  %        image name               symbol name
> > 6514     68.1096  libfb.so                 fbFetchTransformed
> > 613       6.4095  libfb.so                 fbFetchPixel_x8r8g8b8
> > 446       4.6633  libfb.so                 
> > fbCompositeSolidMask_nx8x0565mmx
> > 252       2.6349  libfb.so                 fbStore_r5g6b5
> > 169       1.7670  libfb.so                 fbRasterizeEdges
> > 137       1.4325  libfb.so                 fbCompositeSrc_8888x0565mmx
> > 113       1.1815  libfb.so                 fbCopyAreammx
> > 99        1.0351  libfb.so                 mmxCombineOverU
> >
> > The attached file is a portion of the output from opannotate. There is 
> > a group of MOD operations that are taking a significant portion of the 
> > time. The first column is the number of samples and the second column 
> > is the percentage.
> >
> >    398  6.1099 :                        x1 = MOD (x1, 
> > pict->pDrawable->width);
> >    383  5.8796 :                        x2 = MOD (x2, 
> > pict->pDrawable->width);
> >    336  5.1581 :                        y1 = MOD (y1, 
> > pict->pDrawable->height);
> >    355  5.4498 :                        y2 = MOD (y2, 
> > pict->pDrawable->height);
> >
> > Following this there are also some other expensive operations to 
> > compute r. and put it into buffer[i].
> >
> > -Will
> >
> 
> 
> _______________________________________________
> Devel mailing list
> Devel at laptop.org
> http://mailman.laptop.org/mailman/listinfo/devel




More information about the Devel mailing list