Difference between revisions of "PGO Related Bugs"

From CDOT Wiki
Jump to: navigation, search
(Project Tasks)
(September)
Line 58: Line 58:
 
== Project News ==
 
== Project News ==
  
=== September ===
+
=== September 2008 ===
 
----
 
----
  
 +
<ul>
 +
<!--
 +
 +
  <li>
 +
  <ul><li>
 +
 
 +
  </li></ul>
 +
  </li>
 +
 +
-->
 +
 +
  <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 26th, 2008</span> - Compile with VS 2005 Instead
 +
  <ul><li>mconner and dbaron on the #developers on irc://moznet.org suggested I try to compile the profile build using Visual Studio 2005.  My other build environment is XP (32bit), VS 2008 and Vista SDK.  For testing purposes I should check if VS 2005 and Vista SDK compile then VS 2008 by itself.  I'll probably use VirtualBox to make it easier.
 +
 +
The actual error to my compiling with VS 2008 is found here.
 +
 +
<pre>e:\mozilla\trunk\modules\lcms\src\cmscgats.c(875) : fatal error C1001: An internal error has occurred in the compiler.
 +
(compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x511953E5:0x00000008]', line 182)
 +
To work around this problem, try simplifying or changing the program near the locations listed above.
 +
Please choose the Technical Support command on the Visual C++
 +
Help menu, or open the Technical Support help file for more information
 +
 +
LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage
 +
 +
  Version 9.00.21022.08
 +
 +
  ExceptionCode            = C0000005
 +
  ExceptionFlags          = 00000000
 +
  ExceptionAddress        = 511953E5 (51030000) "e:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\c2.dll"
 +
  NumberParameters        = 00000002
 +
  ExceptionInformation[ 0] = 00000000
 +
  ExceptionInformation[ 1] = 00000008
 +
 +
CONTEXT:
 +
  Eax    = 00000000  Esp    = 0012ED18
 +
  Ebx    = 02D5D215  Ebp    = 0012ED2C
 +
  Ecx    = 02D96601  Esi    = 02D5D280
 +
  Edx    = 02DAAE12  Edi    = 00000305
 +
  Eip    = 511953E5  EFlags = 00010246
 +
  SegCs  = 0000001B  SegDs  = 00000023
 +
  SegSs  = 00000023  SegEs  = 00000023
 +
  SegFs  = 0000003B  SegGs  = 00000000
 +
  Dr0    = 00000000  Dr3    = 00000000
 +
  Dr1    = 00000000  Dr6    = 00000000
 +
  Dr2    = 00000000  Dr7    = 00000000
 +
</pre><br /><br /> 
 +
  </li></ul>
 +
  </li>
  
==== Met with Ted Mielczarek ( Sept 15th, 2008 ) ====
 
{|
 
|&nbsp;&nbsp;&nbsp;
 
|On Tuesday after the conference was over I met with Ted and we discussed how I can get started on the PGO Project.
 
|}
 
  
==== Created First Build ( Sept 17th, 2008 ) ====
+
  <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 24, 2008</span> - PGO build with no debug or tests
{|
+
  <ul><li>I Compiled Firefox with disable debug and tests and I did not receive any assertions but the build still failed to compile. :(  <br /><br />
|&nbsp;&nbsp;&nbsp;
+
  </li></ul>
|I walked through the Mozilla documentation for how to build Firefox. I started [http://developer.mozilla.org/en/Mozilla_Source_Code_(Mercurial) here] with getting the source code and continued until I received errors.  Humph and Ted on IRC helped me sort it out and I successfully built Firefox.
+
  </li>
|}
 
  
==== Created Project Page ( Sept 18th, 2008 ) ====
+
  <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 22th, 2008</span> - Firefox and PGO
{|
+
  <ul><li>I built Firefox with the command <code>make -f client.mk profiledbuild</code>.  This first compiles Firefox with extra code that watches the activity in Firefox and creates profile data to optimize Firefox.  After Firefox is compiled it runs a script that loads the browser.  While the browser it is outputting profile data about the activity. After the browser is closed it compiles again but this time using the profile data to optimize Firefox to run faster on Windows.<br /> <br />
|&nbsp;&nbsp;&nbsp;
+
During the compiling of Firefox I received a lot of warnings.  Then Minefield loaded and after typing in an URL an Assertion happened.  Firefox closed and continue to compile using the profile data but it failed with errors.  I tried again this time just closing the browser after it started but again it failed to compile with the profile data.<br /><br />
|I created this page for the project and added it to the list of Projects.
+
I'll post the output and error logs online.
|}
+
Here are some of the errors.
 +
<pre>make[6]: *** [mozlcms.dll] Error 232
 +
make[6]: *** Deleting file `mozlcms.dll'
 +
make[5]: *** [libs] Error 2
 +
make[4]: *** [libs_tier_external] Error 2
 +
make[3]: *** [tier_external] Error 2
 +
make[2]: *** [default] Error 2
 +
make[1]: *** [build] Error 2
 +
make: *** [profiledbuild] Error 2
 +
</pre>
  
==== Working with PGO ( Sept 19th, 2008 ) ====
+
Here is link to build [http://zenit.senecac.on.ca/wiki/imgs/Sept22build-.zip output].  <br /><br />
{|
+
  </li></ul>
|&nbsp;&nbsp;&nbsp;
+
  </li>
|Working with some old assignments in c and c++ I tried to compile these programs with pgo options but the linker failed on both projects. Also tried from inside of Visual Studio 2008 but received compilation errors.
 
|}
 
  
==== Compiled an old assignment with PGO ( Sept 20th, 2008 ) ====
+
  <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 20th, 2008</span> - Compiled an old assignment with PGO
{|
+
  <ul><li>My previous attempts at compiling the old assignment failed because I was including object files that were compiled with a different compiler. Oops.  I was successful at creating a PGO build with an old assignment.  <br />
|&nbsp;&nbsp;&nbsp;
 
|My previous attempts at compiling the old assignment failed because I was including object files that were compiled with a different compiler. Oops.  I was successful at creating a PGO build with an old assignment.  <br />
 
 
The program loads 15,000 random records from a text file into 4 tables each using a different method for storage and searching.
 
The program loads 15,000 random records from a text file into 4 tables each using a different method for storage and searching.
 
<ol type="1">
 
<ol type="1">
Line 127: Line 174:
 
|} <!-- End result Table -->
 
|} <!-- End result Table -->
 
<br />
 
<br />
I think I will look at the optimization data to figure out how it optimized my application.  I also need to build an optimized version of Firefox and run it.  I know it has bugs or crashes, that is the point of this project so I also need to figure out how to compile and debug Firefox in Visual Studio.
+
I think I will look at the optimization data to figure out how it optimized my application.  I also need to build an optimized version of Firefox and run it.  I know it has bugs or crashes, that is the point of this project so I also need to figure out how to compile and debug Firefox in Visual Studio.   <br /><br />
|}
+
  </li></ul>
 
+
  </li>
==== Firefox and PGO ( Sept 22th, 2008 ) ====
 
{|
 
|&nbsp;&nbsp;&nbsp;
 
|I built Firefox with the command <code>make -f client.mk profiledbuild</code>.  This first compiles Firefox with extra code that watches the activity in Firefox and creates profile data to optimize Firefox.  After Firefox is compiled it runs a script that loads the browser.  While the browser it is outputting profile data about the activity. After the browser is closed it compiles again but this time using the profile data to optimize Firefox to run faster on Windows.<br /> <br />
 
During the compiling of Firefox I received a lot of warnings.  Then Minefield loaded and after typing in an URL an Assertion happened.  Firefox closed and continue to compile using the profile data but it failed with errors.  I tried again this time just closing the browser after it started but again it failed to compile with the profile data.<br /><br />
 
I'll post the output and error logs online.
 
Here are some of the errors.
 
<pre>make[6]: *** [mozlcms.dll] Error 232
 
make[6]: *** Deleting file `mozlcms.dll'
 
make[5]: *** [libs] Error 2
 
make[4]: *** [libs_tier_external] Error 2
 
make[3]: *** [tier_external] Error 2
 
make[2]: *** [default] Error 2
 
make[1]: *** [build] Error 2
 
make: *** [profiledbuild] Error 2
 
</pre>
 
 
 
Here is link to build [http://zenit.senecac.on.ca/wiki/imgs/Sept22build-.zip output].
 
|}
 
 
 
==== PGO build with no debug or tests ( Sept 24th, 2008 ) ====
 
{|
 
|&nbsp;&nbsp;&nbsp;
 
|I Compiled Firefox with disable debug and tests and I did not receive any assertions but the build still failed to compile.  :(
 
|}
 
 
 
==== Compile with VS 2005 Instead ( Sept 26th, 2008 ) ====
 
{|
 
|&nbsp;&nbsp;&nbsp;
 
|mconner and dbaron on the #developers on irc://moznet.org suggested I try to compile the profile build using Visual Studio 2005.  My other build environment is XP (32bit), VS 2008 and Vista SDK.  For testing purposes I should check if VS 2005 and Vista SDK compile then VS 2008 by itself.  I'll probably use VirtualBox to make it easier.
 
 
 
The actual error to my compiling with VS 2008 is found here.
 
 
 
<pre>e:\mozilla\trunk\modules\lcms\src\cmscgats.c(875) : fatal error C1001: An internal error has occurred in the compiler.
 
(compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x511953E5:0x00000008]', line 182)
 
To work around this problem, try simplifying or changing the program near the locations listed above.
 
Please choose the Technical Support command on the Visual C++
 
Help menu, or open the Technical Support help file for more information
 
  
LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage
+
  <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 19th, 2008</span> - Working with PGO
 +
  <ul><li>Working with some old assignments in c and c++ I tried to compile these programs with pgo options but the linker failed on both projects. Also tried from inside of Visual Studio 2008 but received compilation errors.<br /><br />
 +
  </li></ul>
 +
  </li>
  
   Version 9.00.21022.08
+
   <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 18th, 2008</span> - Created Project Page
 +
  <ul><li>I created this page for the project and added it to the list of Projects.   <br /><br />
 +
  </li></ul>
 +
  </li>
  
   ExceptionCode            = C0000005
+
   <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 17th, 2008</span> - Created First Build
  ExceptionFlags          = 00000000
+
   <ul><li>I walked through the Mozilla documentation for how to build Firefox. I started [http://developer.mozilla.org/en/Mozilla_Source_Code_(Mercurial) here] with getting the source code and continued until I received errors. Humph and Ted on IRC helped me sort it out and I successfully built Firefox.   <br /><br />
  ExceptionAddress        = 511953E5 (51030000) "e:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\c2.dll"
+
   </li></ul>
   NumberParameters        = 00000002
+
   </li>
  ExceptionInformation[ 0] = 00000000
 
  ExceptionInformation[ 1] = 00000008
 
 
 
CONTEXT:
 
  Eax    = 00000000 Esp    = 0012ED18
 
   Ebx    = 02D5D215  Ebp    = 0012ED2C
 
   Ecx    = 02D96601  Esi    = 02D5D280
 
  Edx    = 02DAAE12  Edi    = 00000305
 
  Eip    = 511953E5  EFlags = 00010246
 
   SegCs  = 0000001B  SegDs  = 00000023
 
  SegSs  = 00000023  SegEs  = 00000023
 
  SegFs  = 0000003B  SegGs  = 00000000
 
  Dr0    = 00000000  Dr3    = 00000000
 
  Dr1    = 00000000  Dr6    = 00000000
 
  Dr2    = 00000000  Dr7    = 00000000
 
</pre>
 
|}
 
  
{|class="prettytable collapsible collapsed"
+
  <li><span style="background-color:#FF9933; font-weight:bold;border-style:solid;border-width:thin;padding: 2px 2px 2px 2px;">Sept 15th, 2008</span> - Met with Ted Mielczarek
!Always displayed header
+
  <ul><li>On Tuesday after the conference was over I met with Ted and we discussed how I can get started on the PGO Project.  <br /><br />
|-
+
  </li></ul>
|Initially hidden text.
+
  </li> 
|}
+
</ul>

Revision as of 21:04, 26 September 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.

Project Leader(s)

Chris Bishop

Project Contributor(s)

- None so far but that will change.

NOTE: only Project Leader(s) should add names here. You can’t add your own name to the Contributor list.

Project Tasks

Task Details Priority Status Target Link(s)
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 Not Started 0.1 R
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

Project Details

Details to come...

Project News

September 2008


  • Sept 26th, 2008 - Compile with VS 2005 Instead
    • mconner and dbaron on the #developers on irc://moznet.org suggested I try to compile the profile build using Visual Studio 2005. My other build environment is XP (32bit), VS 2008 and Vista SDK. For testing purposes I should check if VS 2005 and Vista SDK compile then VS 2008 by itself. I'll probably use VirtualBox to make it easier. The actual error to my compiling with VS 2008 is found here.
      e:\mozilla\trunk\modules\lcms\src\cmscgats.c(875) : fatal error C1001: An internal error has occurred in the compiler.
      (compiler file 'f:\dd\vctools\compiler\utc\src\p2\main.c[0x511953E5:0x00000008]', line 182)
       To work around this problem, try simplifying or changing the program near the locations listed above.
      Please choose the Technical Support command on the Visual C++ 
       Help menu, or open the Technical Support help file for more information
      
      LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage
      
        Version 9.00.21022.08
      
        ExceptionCode            = C0000005
        ExceptionFlags           = 00000000
        ExceptionAddress         = 511953E5 (51030000) "e:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\c2.dll"
        NumberParameters         = 00000002
        ExceptionInformation[ 0] = 00000000
        ExceptionInformation[ 1] = 00000008
      
      CONTEXT:
        Eax    = 00000000  Esp    = 0012ED18
        Ebx    = 02D5D215  Ebp    = 0012ED2C
        Ecx    = 02D96601  Esi    = 02D5D280
        Edx    = 02DAAE12  Edi    = 00000305
        Eip    = 511953E5  EFlags = 00010246
        SegCs  = 0000001B  SegDs  = 00000023
        SegSs  = 00000023  SegEs  = 00000023
        SegFs  = 0000003B  SegGs  = 00000000
        Dr0    = 00000000  Dr3    = 00000000
        Dr1    = 00000000  Dr6    = 00000000
        Dr2    = 00000000  Dr7    = 00000000
      



  • Sept 24, 2008 - PGO build with no debug or tests
    • I Compiled Firefox with disable debug and tests and I did not receive any assertions but the build still failed to compile.  :(

  • Sept 22th, 2008 - Firefox and PGO
    • I built Firefox with the command make -f client.mk profiledbuild. This first compiles Firefox with extra code that watches the activity in Firefox and creates profile data to optimize Firefox. After Firefox is compiled it runs a script that loads the browser. While the browser it is outputting profile data about the activity. After the browser is closed it compiles again but this time using the profile data to optimize Firefox to run faster on Windows.

      During the compiling of Firefox I received a lot of warnings. Then Minefield loaded and after typing in an URL an Assertion happened. Firefox closed and continue to compile using the profile data but it failed with errors. I tried again this time just closing the browser after it started but again it failed to compile with the profile data.

      I'll post the output and error logs online. Here are some of the errors.
      make[6]: *** [mozlcms.dll] Error 232
      make[6]: *** Deleting file `mozlcms.dll'
      make[5]: *** [libs] Error 2
      make[4]: *** [libs_tier_external] Error 2
      make[3]: *** [tier_external] Error 2
      make[2]: *** [default] Error 2
      make[1]: *** [build] Error 2
      make: *** [profiledbuild] Error 2
      

      Here is link to build output.

  • Sept 20th, 2008 - Compiled an old assignment with PGO
    • My previous attempts at compiling the old assignment failed because I was including object files that were compiled with a different compiler. Oops. I was successful at creating a PGO build with an old assignment.
      The program loads 15,000 random records from a text file into 4 tables each using a different method for storage and searching.
      1. Simple Table: Uses an array and a linear search.
      2. Chain Table: Uses an array of link lists. Search is done with a Hash Key.
      3. Hash Table: Uses an array and searches with linear probing. Also uses a Hash Key.
      4. Tree Table: Uses a binary search tree.


      After the data is loaded into a table, 30 different tests are run against it. The same 30 tests for each table. Here are the Results.

      Non-PGO PGO Improved By
      Simple Table: 28 Secs 4 Secs 7x
      Chain Table: 0.109 Secs 0.047 Secs 2.3x
      Hash Table: 0.141 Secs 0.047 Secs 2.3x
      Tree Table: 0.287 Secs 0.078 Secs 3.6x


      I think I will look at the optimization data to figure out how it optimized my application. I also need to build an optimized version of Firefox and run it. I know it has bugs or crashes, that is the point of this project so I also need to figure out how to compile and debug Firefox in Visual Studio.

  • Sept 19th, 2008 - Working with PGO
    • Working with some old assignments in c and c++ I tried to compile these programs with pgo options but the linker failed on both projects. Also tried from inside of Visual Studio 2008 but received compilation errors.

  • Sept 18th, 2008 - Created Project Page
    • I created this page for the project and added it to the list of Projects.

  • Sept 17th, 2008 - Created First Build
    • I walked through the Mozilla documentation for how to build Firefox. I started here with getting the source code and continued until I received errors. Humph and Ted on IRC helped me sort it out and I successfully built Firefox.

  • Sept 15th, 2008 - Met with Ted Mielczarek
    • On Tuesday after the conference was over I met with Ted and we discussed how I can get started on the PGO Project.