Open main menu

CDOT Wiki β

PGO Related Bugs

Revision as of 14:58, 17 October 2008 by Cbishop2 (talk | contribs) (October 2008)

Project Name

PGO Related Bugs

Project Description

Firefox crashes or experiences bugs after creating PGO builds on Windows. The focus of this project is to determine what is causing these crashes or bugs and either patch/fix them or find solutions to allow for the optimizations without incurring the problems.

As of Oct 2nd:
Profiling Firefox to increase the number of functions optimized in the PGO build of Firefox.

Project Leader(s)

Project Contributor(s)

Contributors are needed for help on profiling Firefox to improve PGO on Firefox.

What contributions are needed?

  • What should be profiled?
  • A write up on steps to produce profile.
  • Creating scripts to execute profile steps.


Name Contribution
Chris Bishop ( Example ) Script to open and close Firefox.



  • Need some bash scripting help.
  • I'm on IRC as chrisBee
Name Script Contribution
Chinmay Patel Created a small script to search and replace a piece of text in a file.

Project Tasks

Task Details Priority Status Target Link(s) or Notes
Compile Firefox PGO Compile the trunk of Firefox using make -f client.mk profiledbuild. High Done 0.1 R
Reproduce PGO Bugs or Crashes I need to reproduce the bugs or crashes other people were experiencing with their pgo builds. High Done 0.1 R Unable to reproduce. Focusing on profiling Firefox. Blog Post
Compile Firefox PGO Tests Compile Firefox with VS 2005 and Vista SDK and compile with VS 2008 w/o Vista SDK. Low Not Started 0.3 R
Determine 0.1 Release I need to determine what I'll be releasing for the 0.1 Release. High Done Sept 28th, 2008
Scenario Scripts I need a script that will build multiple PGO builds in different directories using different profiling scenarios. High Done Oct 24th, 2008 I need some help from contributors to help me accomplish this. **Update** Thanks to Chinmay and Dave Humphrey I was able to create this script.

Project Details

PGO Details

Details


Testing Scripts




Related Bugs

Figure out why building jemalloc breaks with PGO enabled - 419470
sort out PGO-triggered bugs - 419893
win32 mozilla-central weirdness with PGO - 437002

Releases

0.1 Release

Reproduce bug(s)
Was able to reproduce bug for sqlite pgo.
Document how to reproduce bug(s).
To enable PGO for sqlite a line must be commented in a make file.

in path/to/src/db/sqlite/src/Makefile.in
add a hash to the line NO_PROFILE_GUIDED_OPTIMIZE = 1
should look like #NO_PROFILE_GUIDED_OPTIMIZE = 1
The build firefox with make -f client.mk profiledbuild
in the .mozconfig file you'll need an extra parameter mk_add_options PROFILE_GEN_SCRIPT="sh script/to/run.sh"
My Script file has the following:

export NO_EM_RESTART=1 #this means 'do not restart for any reason' during automation we do not want any restarting

mkdir $OBJDIR/_profileprofile 
cd $OBJDIR/_tests/testing/mochitest
python runtests.py --test-path=browser/ --autorun --close-when-done
Hone in on cause of bug(s).
Turns out the bug is in the sqlite3.c file. I can reproduce the error when creating a stand alone sqlite application and enabling PGO on the application.
Running xpcshell and Mochitest against PGO build.
Since firefox right out crashes I am unable to run Mochitests but the xpcshell tests do run until they hit the storage tests.
Create strategy for profiling Firefox to improve performance.
I tried different approaches to profiling for Firefox to improve its performance but I was not able to help it at all. I have concluded that the existing script of opening and closing the browser is more than enough for profiling. The browser is rendered using the same components to render and load web pages this means profiling the loading and rendering of the browser will optimize the rendering and loading of web pages.
Deliverable
I have updated the bug 419893 with how to reproduce the bug, a text file of the errors, a zip file with the source code for my test app to produce pgo errors with sqlite as a stand alone app.

0.2 Release

To be Announced...

0.3 Release

To be Announced...

Errors

  • Build Environment:
    • Windows XP (32-bit)
    • Visual Studio 2008
    • Vista SDK



Performance

Last updated: October 11th, 2008

PGO Performance data


Project News

October 2008

Date Comments
Oct 17th, 2008 I have written up my 0.1 Release and have blogged about it.
Oct 16th, 2008 After compiling Firefox with sqlite pgo enabled I was able to reproduce the crash as reported on the bug. I also received errors in xpcshell which I posted to the bug on bugzilla. I also created a test application for sqlite and found it crashed when compiled with PGO as a stand alone application.
Oct 14th, 2008 Through the contribution of a fellow student I was able to create a script to automate multiple PGO Builds.
Oct 11th, 2008 I checked my performance tests again this time including a pgo build with no profiling and Google Maps was 45% on both Minefields. Regardless of the profiling.
Oct 10th, 2008 Updated the contributions section for help with creating bash shell scripts.
Oct 10th, 2008 Made a pgo performance chart. Google Maps was 45% faster in my pgo build after I profiled the site.
Oct 8th, 2008 Still receiving 35 failed tests even when I have no windows open and am not at the computer.
Oct 8th, 2008 Ted mentioned on IRC that the 35 failed tests may of happened because I was moving my mouse during the tests. Which I was. I'm going to try the tests again.
Oct 7th, 2008 Using pgomgr I am able to see what profiling data has been collected.
Oct 4th, 2008 A build of Firefox without PGO resulted in 35 failed Tests in Mochitest. Xpcshell passed just fine. At this time the tree is closed so I cannot get the latest bug free version.
Oct 2nd, 2008 After talking with Ted and Dave Humphrey I am going to focus my project on increasing the profiling of Firefox to increase its speed.

I am also enabling the modules that have PGO disable and running the xpcshell and Mochitests on them to determine if they are still broken or if they are now working.

September 2008


Date Comments
Sept 30th, 2008 Failed to reproduce bugs. I followed Ted's suggestions on my blog but still not experiencing any problems with my pgo build.
Sept 28th, 2008 Ted pointed me in the right direction on how to reproduce the PGO bugs. His post is here.
Sept 26th, 2008 Successfully compiled Firefox with PGO using Visual Studio 2005 compiler. Tests and debug are disabled.
Sept 26th, 2008 On IRC some guys suggested compiling with Visual Studio 2005 instead.
Sept 24th, 2008 Attempted to compile with debug and test disabled. Still Failed.
Sept 22th, 2008 Failed to compile Firefox with PGO on Visual Studio 2008.
Sept 20th, 2008 Successfully compiled one old assignment using PGO in Visual Studio. Results in Project Details.
Sept 19th, 2008 Tried to compile some old assignments using PGO in Visual Studio. Two assignments failed.
Sept 18th, 2008 Created this Project Page.
Sept 17th, 2008 Created First Build of Firefox.
Sept 15th, 2008 Met with Ted Mielczarek and discuss PGO Project.