Bug 716619 - Simplify GC probes (r=sfink)

This commit is contained in:
Bill McCloskey 2012-01-27 11:35:12 -08:00
parent 2e64659d2f
commit 50c8625072
3 changed files with 27 additions and 36 deletions

View File

@ -79,29 +79,29 @@
<!-- GC -->
<event symbol="EvtGCStart" value="1012" version="1"
channel="MozillaChannel" level="win:Informational"
template="CompartmentTemplate" task="Allocation" opcode="GCStart"
template="BooleanTemplate" task="Allocation" opcode="GCStart"
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
<event symbol="EvtGCEnd" value="1013" version="1"
channel="MozillaChannel" level="win:Informational"
template="CompartmentTemplate" task="Allocation" opcode="GCEnd"
template="BooleanTemplate" task="Allocation" opcode="GCEnd"
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
<event symbol="EvtGCStartMarkPhase" value="1014" version="1"
channel="MozillaChannel" level="win:Informational"
template="CompartmentTemplate" task="Allocation" opcode="GCMarkStart"
template="VoidTemplate" task="Allocation" opcode="GCMarkStart"
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
<event symbol="EvtGCEndMarkPhase" value="1015" version="1"
channel="MozillaChannel" level="win:Informational"
template="CompartmentTemplate" task="Allocation" opcode="GCMarkEnd"
template="VoidTemplate" task="Allocation" opcode="GCMarkEnd"
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
<event symbol="EvtGCStartSweepPhase" value="1016" version="1"
channel="MozillaChannel" level="win:Informational"
template="CompartmentTemplate" task="Allocation" opcode="GCSweepStart"
template="VoidTemplate" task="Allocation" opcode="GCSweepStart"
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
<event symbol="EvtGCEndSweepPhase" value="1017" version="1"
channel="MozillaChannel" level="win:Informational"
template="CompartmentTemplate" task="Allocation" opcode="GCSweepEnd"
template="VoidTemplate" task="Allocation" opcode="GCSweepEnd"
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
<event symbol="EvtMemoryAcquire" value="1018" version="1"
@ -231,8 +231,8 @@
<data name="Size" inType="win:Int64" outType="xs:long"/>
</template>
<template tid="CompartmentTemplate">
<data name="Compartment" inType="win:Int64" outType="xs:long"/>
<template tid="BooleanTemplate">
<data name="Boolean" inType="win:Boolean" outType="xs:boolean"/>
</template>
<template tid="MemoryLocationTemplate">
@ -259,6 +259,9 @@
<data name="Int" inType="win:Int32" outType="xs:int"/>
</template>
<template tid="VoidTemplate">
</template>
</templates>
</provider>
</events>

View File

@ -206,7 +206,7 @@ Statistics::beginGC(JSCompartment *comp, gcreason::Reason reason)
triggerReason = reason;
beginPhase(PHASE_GC);
Probes::GCStart(compartment);
Probes::GCStart(!!compartment);
GCCrashData crashData;
crashData.isCompartment = !!compartment;
@ -283,7 +283,7 @@ Statistics::printStats()
void
Statistics::endGC()
{
Probes::GCEnd(compartment);
Probes::GCEnd(!!compartment);
endPhase(PHASE_GC);
crash::SnapshotGCStack();
@ -315,16 +315,10 @@ Statistics::beginPhase(Phase phase)
{
phaseStarts[phase] = PRMJ_Now();
if (phase == gcstats::PHASE_SWEEP) {
Probes::GCStartSweepPhase(NULL);
if (!compartment) {
for (JSCompartment **c = runtime->compartments.begin();
c != runtime->compartments.end(); ++c)
{
Probes::GCStartSweepPhase(*c);
}
}
}
if (phase == gcstats::PHASE_MARK)
Probes::GCStartMarkPhase();
else if (phase == gcstats::PHASE_SWEEP)
Probes::GCStartSweepPhase();
}
void
@ -333,16 +327,10 @@ Statistics::endPhase(Phase phase)
phaseEnds[phase] = PRMJ_Now();
phaseTimes[phase] += phaseEnds[phase] - phaseStarts[phase];
if (phase == gcstats::PHASE_SWEEP) {
if (!compartment) {
for (JSCompartment **c = runtime->compartments.begin();
c != runtime->compartments.end(); ++c)
{
Probes::GCEndSweepPhase(*c);
}
}
Probes::GCEndSweepPhase(NULL);
}
if (phase == gcstats::PHASE_MARK)
Probes::GCEndMarkPhase();
else if (phase == gcstats::PHASE_SWEEP)
Probes::GCEndSweepPhase();
}
} /* namespace gcstats */

View File

@ -197,14 +197,14 @@ bool releaseMemory(JSContext *cx, void *address, size_t nbytes);
* Multiple compartments' GC will be interleaved during a global collection
* (eg, compartment 1 starts, compartment 2 starts, compartment 1 ends, ...)
*/
bool GCStart(JSCompartment *compartment);
bool GCEnd(JSCompartment *compartment);
bool GCStart(bool isFull);
bool GCEnd(bool isFull);
bool GCStartMarkPhase(JSCompartment *compartment);
bool GCEndMarkPhase(JSCompartment *compartment);
bool GCStartMarkPhase();
bool GCEndMarkPhase();
bool GCStartSweepPhase(JSCompartment *compartment);
bool GCEndSweepPhase(JSCompartment *compartment);
bool GCStartSweepPhase();
bool GCEndSweepPhase();
/*
* Various APIs for inserting custom probe points. These might be used to mark