Closed
Bug 623762
Opened 14 years ago
Closed 6 years ago
AsymmGC - Marking support
Categories
(Tamarin Graveyard :: Garbage Collection (mmGC), defect, P3)
Tamarin Graveyard
Garbage Collection (mmGC)
Tracking
(Not tracked)
RESOLVED
WONTFIX
Q3 12 - Dolores
People
(Reporter: siwilkin, Unassigned)
References
Details
Attachments
(1 file, 5 obsolete files)
(deleted),
patch
|
Details | Diff | Splinter Review |
This patch provides thread-safe write barriers and extends GC::MarkQueueAndStack to mark all mutator's stacks.
Thread-safe write-barriers are trivial, given that GC::IsMarkedThenMakeQueued has been made thread-safe with atomic operations in bug 623618. All else that this patch has to add is:
- Protect slow-path mutator access to m_barrierWork and m_incrementalWork with critical sections.
- Ensure that GC::marking cannot change under the feet of a mutator due to a safepoint task. I.e. we need to ensure the following:
GC::foo() {
if (marking) {
// Uninterruptable by safepoint tasks that may change the value of 'marking'
}
}
GC::MarkQueueAndStack is extended to mark all mutator's stacks by iterating over all SafepointRecords known to the GC's SafepointManager (except the GC-owner thread's), and adding their stack extents as GCWorkItems. Note that as GC::MarkQueueAndStack is called from within a safepoint task, then all mutators will be safe.
Reporter | ||
Updated•14 years ago
|
Attachment #501859 -
Attachment is patch: true
Attachment #501859 -
Attachment mime type: application/octet-stream → text/plain
Reporter | ||
Comment 1•14 years ago
|
||
Slight tweak: a SCOPE_LOCK_SP should have been a MMGC_SCOPE_LOCK
Attachment #501859 -
Attachment is obsolete: true
Reporter | ||
Comment 2•14 years ago
|
||
Made GCPolicyManager::barrierStageLastCollection thread-safe (via an AtomicCounter32)
(This had found its way into another patch by mistake)
Attachment #501868 -
Attachment is obsolete: true
Comment 3•14 years ago
|
||
The switch of the type for barrierStageLastCollection introduces somewhat large overhead on allocation heavy benchmarks. Here are asmicro/alloc-* performance results comparing non-atomic and atomic counter types.
non-atomic-ctrs: ../../objdir-rel32/shell/avmshell.isolatemutpaths-031disable-atomic-barrierstagecounts version: cyclone
atomic-ctrs: ../../objdir-rel32/shell/avmshell.isolatemutpaths-021disable-wbrc-asserts version: cyclone
iterations: 25
non-atomic-ctrs atomic-ctrs
test best avg best avg %dBst %dAvg
Metric: iterations/second
Dir: asmicro/
alloc-1 41.9 41.8 40.5 40.5 -3.3 -3.3 -
alloc-10 14.9 14.8 14.3 14.3 -3.7 -3.8 -
alloc-11 15.3 15.2 14.9 14.9 -2.2 -2.1 -
alloc-12 15.3 15.3 15.0 14.9 -2.4 -2.3 -
alloc-13 86.3 86.1 84.5 84.4 -2.1 -2.0 -
alloc-14 72.9 72.4 71.1 70.7 -2.5 -2.4 -
alloc-2 20.4 20.4 20.0 20.0 -2.2 -2.1 -
alloc-3 17.3 17.3 16.6 16.4 -4.2 -5.0 -
alloc-4 46.8 46.8 45.5 45.4 -2.9 -2.9 -
alloc-5 33.9 33.9 33.8 33.7 -0.5 -0.5
alloc-6 70.2 70.0 68.7 68.6 -2.0 -2.0 -
alloc-7 39.1 39.1 37.8 37.8 -3.4 -3.4 -
alloc-8 15.9 15.9 15.3 15.3 -3.9 -4.0 -
alloc-9 15.9 15.9 15.3 15.3 -4.0 -4.0 -
Comment 4•14 years ago
|
||
(In reply to comment #3)
> The switch of the type for barrierStageLastCollection introduces somewhat large
> overhead on allocation heavy benchmarks. Here are asmicro/alloc-* performance
> results comparing non-atomic and atomic counter types.
Clarification: The overhead described would only be introduced into builds with MMGC_POLICY_PROFILING turned on. From what I understand, this means includes the AVM shell, but not the Flash player. That could mean that we should turn that feature switch off when doing performance evaluation for AsymmGC; or it could mean that we still need to work around this issue some other way.
Reporter | ||
Comment 5•14 years ago
|
||
Attachment #502091 -
Attachment is obsolete: true
Reporter | ||
Comment 6•14 years ago
|
||
Attachment #515827 -
Attachment is obsolete: true
Reporter | ||
Updated•14 years ago
|
Attachment #520816 -
Flags: review?(treilly)
Attachment #520816 -
Flags: review?(lhansen)
Reporter | ||
Updated•14 years ago
|
Attachment #520816 -
Flags: review?(fklockii)
Comment 7•14 years ago
|
||
Comment typo: 'with in' -> 'within'
Reporter | ||
Updated•14 years ago
|
Assignee: nobody → fklockii
Updated•14 years ago
|
Priority: -- → P3
Target Milestone: --- → Q1 12 - Brannan
Reporter | ||
Comment 8•14 years ago
|
||
Attachment #520816 -
Attachment is obsolete: true
Attachment #520816 -
Flags: review?(treilly)
Attachment #520816 -
Flags: review?(lhansen)
Attachment #520816 -
Flags: review?(fklockii)
Reporter | ||
Updated•14 years ago
|
Attachment #525555 -
Flags: review?(treilly)
Attachment #525555 -
Flags: review?(lhansen)
Attachment #525555 -
Flags: review?(fklockii)
Retargeting to Dolores.
Target Milestone: Q1 12 - Brannan → Q3 12 - Dolores
Updated•13 years ago
|
Attachment #525555 -
Flags: review?(lhansen)
Updated•13 years ago
|
Attachment #525555 -
Flags: review?(fklockii)
Updated•13 years ago
|
Assignee: nobody → fklockii
Updated•12 years ago
|
Attachment #525555 -
Flags: review?(treilly)
Comment 10•12 years ago
|
||
(unassigning self; we may or may not land this, but we have other fish to fry in the meantime.)
Assignee: fklockii → nobody
Comment 11•6 years ago
|
||
Tamarin isn't maintained anymore. WONTFIX remaining bugs.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•