Platform/Features/Incremental GC/TestPlan: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 8: Line 8:
| Dev Lead  
| Dev Lead  
| QA Lead  
| QA Lead  
| Status
| QA Status
|-
|-
| Incremental GC
| Incremental GC
| {{StatusHealthy|status=Landed}}
| {{StatusHealthy|status=Landed}}
| Firefox 15
| Firefox 16
| Bill McCloskey
| Bill McCloskey
| Ioana Budnar
| Ioana Budnar
| In Progress
| {{StatusHealthy|status=Signed off on Aurora}}
|}
|}


== Summary ==
== Summary ==
*Garbage collection time is divided into short increments. Overall, the same amount of time is spent doing garbage colletion, but each individual pause is shorter.
*Garbage collection time is divided into short increments. Overall, the same amount of time is spent doing garbage collection, but each individual pause is shorter.


== References ==
== References ==


*[https://wiki.mozilla.org/Platform/Features/Incremental_GC Wiki page]
*[https://wiki.mozilla.org/Platform/Features/Incremental_GC Wiki page]
*[https://bugzilla.mozilla.org/show_bug.cgi?id=641025 Tracking bug]


== Use Cases ==
== Use Cases ==


*Use Firefox with incremental garbage collection enabled. When IGC is enabled, dynamic content on the web should have more tolerable pauses (possibly go from noticeable pauses to ones the user cannot notice).
*Use Firefox with incremental garbage collection enabled:
**Dynamic content on the web should have more tolerable pauses (possibly go from noticeable pauses to ones the user cannot notice).
**Most GCs, if not all, should be incremental.
**Incremental GC parameters should have acceptable values (slices with Marks <=20ms, Max Pauses <=16ms, or at least shorter than the total for Mark).
*Disable incremental garbage collection.
*Disable incremental garbage collection.


Line 35: Line 39:


== Important Bugs ==
== Important Bugs ==
 
<bugzilla>
*[https://bugzilla.mozilla.org/show_bug.cgi?id=641025 641025] - Incremental GC
{
*[https://bugzilla.mozilla.org/show_bug.cgi?id=734946 734946] - Disable incremental GC for Firefox 13
"id": "734946, 728692, 735944, 728686, 730853, 752098, 735099, 728976, 729773, 759522, 761739, 768688"
*[https://bugzilla.mozilla.org/show_bug.cgi?id=728692 728692] - Javascript becomes slow after Incremental GC gets disabled
}
*[https://bugzilla.mozilla.org/show_bug.cgi?id=735944 735944] - about:support says "incremental gc: 1" when javascript.options.mem.gc_incremental is disabled
</bugzilla>
*[https://bugzilla.mozilla.org/show_bug.cgi?id=728686 728686] - JS_NewPropertyIterator disables IGC
*[https://bugzilla.mozilla.org/show_bug.cgi?id=730853 730853] - If incremental GC or compartment GC runs all the time, CC never runs
*[https://bugzilla.mozilla.org/show_bug.cgi?id=752098 752098] - Crashes on MemBench with incremental GC enabled
*[https://bugzilla.mozilla.org/show_bug.cgi?id=735099 735099] - Re-enable incremental GC on desktop platforms


== Not Tested ==
== Not Tested ==
Line 56: Line 56:
;Sign offs
;Sign offs
*Firefox 13.0 Aurora - 2012-03-19
*Firefox 13.0 Aurora - 2012-03-19
*Firefox 15.0 Aurora - 2012-06-08
**bugs 761739, 728692, 728976, 729773, 759522 still not fixed.
*Firefox 16.0 Aurora - 2012-07-20
**30%-40% of the IGCs have long slices, but they all have acceptable Mark values (<20ms).
**10%-20% of the IGCs have Max Pause longer than the total for Mark.

Latest revision as of 14:01, 24 July 2012

Incremental Garbage Collection

Feature Status Release Target Dev Lead QA Lead QA Status
Incremental GC Landed Firefox 16 Bill McCloskey Ioana Budnar Signed off on Aurora

Summary

  • Garbage collection time is divided into short increments. Overall, the same amount of time is spent doing garbage collection, but each individual pause is shorter.

References

Use Cases

  • Use Firefox with incremental garbage collection enabled:
    • Dynamic content on the web should have more tolerable pauses (possibly go from noticeable pauses to ones the user cannot notice).
    • Most GCs, if not all, should be incremental.
    • Incremental GC parameters should have acceptable values (slices with Marks <=20ms, Max Pauses <=16ms, or at least shorter than the total for Mark).
  • Disable incremental garbage collection.

Test Cases

  • The test cases for this feature can be viewed here.

Important Bugs

Full Query
ID Summary Priority Status
728686 JS_NewPropertyIterator disables IGC -- VERIFIED
728692 Javascript becomes slow after Incremental GC gets disabled -- RESOLVED
728976 Debug-only incremental GC crash [@ js::ReentrancyGuard::ReentrancyGuard] -- RESOLVED
729773 [IncrementalGC] "Assertion failure: IsMarkedOrAllocated(static_cast<Cell *>(thing))" with adoptNode, gczeal(4) -- RESOLVED
730853 If incremental GC or compartment GC runs all the time, CC never runs -- VERIFIED
734946 Disable incremental GC for Firefox 13 -- VERIFIED
735099 Re-enable incremental GC on desktop platforms -- RESOLVED
735944 about:support says "incremental gc: 1" when javascript.options.mem.gc_incremental is disabled -- VERIFIED
752098 Crashes on MemBench with incremental GC enabled -- RESOLVED
759522 OOM during mochitest-other -- RESOLVED
761739 incremental GCs are very rare -- RESOLVED
768688 Disable incremental GC for Firefox 15; re-enable compartment GCs -- RESOLVED

12 Total; 0 Open (0%); 8 Resolved (66.67%); 4 Verified (33.33%);


Not Tested

  • Cycle collector.

Sign off

Criteria
  • All the test cases were executed.
  • All the major bugs have been fixed.
Sign offs
  • Firefox 13.0 Aurora - 2012-03-19
  • Firefox 15.0 Aurora - 2012-06-08
    • bugs 761739, 728692, 728976, 729773, 759522 still not fixed.
  • Firefox 16.0 Aurora - 2012-07-20
    • 30%-40% of the IGCs have long slices, but they all have acceptable Mark values (<20ms).
    • 10%-20% of the IGCs have Max Pause longer than the total for Mark.