Firefox/Goals/2010Q1/IO Reduction: Difference between revisions

From MozillaWiki
< Firefox‎ | Goals‎ | 2010Q1
Jump to navigation Jump to search
(→‎Status: Update actual percentage hit in status.)
 
(3 intermediate revisions by the same user not shown)
Line 5: Line 5:


== Status ==
== Status ==
<onlyinclude>AT RISKAbout 42.9% of the IO has been removed from mozilla-central.  Up to 16.1% is up for review (michal.novotny).  See [[Firefox/Goals/2010Q1/IO Reduction#Timeline / Milestones|this table]] for more details</onlyinclude>
<onlyinclude>MISSED.  42 - 43% of the IO has been removed from mozilla-central.  Up to 23.4% is real close.  See [[Firefox/Goals/2010Q1/IO Reduction#Timeline / Milestones|this table]] for more details</onlyinclude>


== Goals ==
== Goals ==
Line 23: Line 23:
*total count: 7562
*total count: 7562


Note: You will find 5803 writes in the log, however 1441 of them are due to PR_SetPollableEvent. There is a bug in the DTrace script that we haven't been able to figure out that attributes it to some file when it is actually writing to a named pipe or socket. We don't actually care about this, so we've adjusted the total to reflect this.  
Note: You will find 5803 writes in the log, however 1441 of them are due to PR_SetPollableEvent. There is a bug in the DTrace script that we haven't been able to figure out that attributes it to some file when it is actually writing to a named pipe or socket. We don't actually care about this write, so we've adjusted the total to reflect this.
 
Finishing numbers from v1.2 of the criteria are:
*write counts: 1431
*read counts: 1649
*fsync counts: 19
*fstat counts: 1268
*total count: 4367
 
Note: You will find 2968 writes in the log, however 1537 of them are due to PR_SetPollableEvent. There is a bug in the DTrace script that we haven't been able to figure out that attributes it to some file when it is actually writing to a named pipe or socket.  We don't actually care about this write, so we've adjusted the total to reflect this.


These are the bugs of interest:  
These are the bugs of interest:  
Line 49: Line 58:
| {{bug|549767}} - Write/flush cache metadata off main-thread  
| {{bug|549767}} - Write/flush cache metadata off main-thread  
| Bjarne  
| Bjarne  
| style="background:red; color: white;" | AT RISK; patch up for review (michal.novotny)
| style="background:red; color: white;" | MISSED; needs a new patch
| 0  
| 0  
| 1220  
| 1220  
Line 76: Line 85:
| {{bug|513008}} - Eliminate synchronous reads from cache  
| {{bug|513008}} - Eliminate synchronous reads from cache  
| michal.novotny  
| michal.novotny  
| style="background:red; color:white" | AT RISK; patch up to make channels asyn open cache entries (r?jduell); wip to make that async
| style="background:red; color:white" | MISSED; needs a new patch to finish up and get final review
| 554  
| 554  
| 0  
| 0  

Latest revision as of 21:54, 6 April 2010

Reducing I/O operations on the main thread will remove potential points of hanging that users experience, providing a substantially better user experience to our users. Removing at least 50% of our current I/O operations (as of January 1, 2010) from the main thread.

  • Project Lead: sdwilsh
  • Project Members: Bjarne, mak, rflint, Unfocused

Status

MISSED. 42 - 43% of the IO has been removed from mozilla-central. Up to 23.4% is real close. See this table for more details

Goals

  • Reduce at least 50% of the I/O operations on the main thread (read, write, fsync, fstat) based on a certain set of criteria.

Non-Goals

  • Reduce the number of I/O operations that we do

Timeline / Milestones

Initial numbers from v1.2 of the criteria are:

  • write counts: 4362
  • read counts: 1636
  • fsync counts: 47
  • fstat counts: 1517
  • total count: 7562

Note: You will find 5803 writes in the log, however 1441 of them are due to PR_SetPollableEvent. There is a bug in the DTrace script that we haven't been able to figure out that attributes it to some file when it is actually writing to a named pipe or socket. We don't actually care about this write, so we've adjusted the total to reflect this.

Finishing numbers from v1.2 of the criteria are:

  • write counts: 1431
  • read counts: 1649
  • fsync counts: 19
  • fstat counts: 1268
  • total count: 4367

Note: You will find 2968 writes in the log, however 1537 of them are due to PR_SetPollableEvent. There is a bug in the DTrace script that we haven't been able to figure out that attributes it to some file when it is actually writing to a named pipe or socket. We don't actually care about this write, so we've adjusted the total to reflect this.

These are the bugs of interest:

Bug Owner Status reads writes fsyncs fstats I/O Responsible
bug 513074 - remove sync writes from current cache Bjarne landed 0 898 0 0 11.9%
bug 549767 - Write/flush cache metadata off main-thread Bjarne MISSED; needs a new patch 0 1220 0 0 16.1%
bug 536978 - Cookies should write asynchronously sdwilsh landed 0 1786 19 265 27.4%
bug 553489 - Make setAndLoadFaviconForPage completely async mak landed 9 92 9 8 1.6%
bug 513008 - Eliminate synchronous reads from cache michal.novotny MISSED; needs a new patch to finish up and get final review 554 0 0 0 7.3%
bug 541779 - Make site-specific zoom check asynchronous rflint landed 150 0 0 0 2.0%
bug 461199 - Make visitedness checks asynchronous sdwilsh landed; but not showing up in DTrace likely because it was hitting the SQLite cache before.  ?  ?  ?  ?  ?

Requirements

This work must be landed on mozilla-central by March 31, 2010.

Dependencies

None

Testing

Our normal automated testing should be sufficient here. Numbers of calls are generated by this DTrace script.

Related Projects

None