mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 716619 - Simplify GC probes (r=sfink)
This commit is contained in:
parent
2e64659d2f
commit
50c8625072
@ -79,29 +79,29 @@
|
|||||||
<!-- GC -->
|
<!-- GC -->
|
||||||
<event symbol="EvtGCStart" value="1012" version="1"
|
<event symbol="EvtGCStart" value="1012" version="1"
|
||||||
channel="MozillaChannel" level="win:Informational"
|
channel="MozillaChannel" level="win:Informational"
|
||||||
template="CompartmentTemplate" task="Allocation" opcode="GCStart"
|
template="BooleanTemplate" task="Allocation" opcode="GCStart"
|
||||||
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
||||||
<event symbol="EvtGCEnd" value="1013" version="1"
|
<event symbol="EvtGCEnd" value="1013" version="1"
|
||||||
channel="MozillaChannel" level="win:Informational"
|
channel="MozillaChannel" level="win:Informational"
|
||||||
template="CompartmentTemplate" task="Allocation" opcode="GCEnd"
|
template="BooleanTemplate" task="Allocation" opcode="GCEnd"
|
||||||
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
||||||
|
|
||||||
<event symbol="EvtGCStartMarkPhase" value="1014" version="1"
|
<event symbol="EvtGCStartMarkPhase" value="1014" version="1"
|
||||||
channel="MozillaChannel" level="win:Informational"
|
channel="MozillaChannel" level="win:Informational"
|
||||||
template="CompartmentTemplate" task="Allocation" opcode="GCMarkStart"
|
template="VoidTemplate" task="Allocation" opcode="GCMarkStart"
|
||||||
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
||||||
<event symbol="EvtGCEndMarkPhase" value="1015" version="1"
|
<event symbol="EvtGCEndMarkPhase" value="1015" version="1"
|
||||||
channel="MozillaChannel" level="win:Informational"
|
channel="MozillaChannel" level="win:Informational"
|
||||||
template="CompartmentTemplate" task="Allocation" opcode="GCMarkEnd"
|
template="VoidTemplate" task="Allocation" opcode="GCMarkEnd"
|
||||||
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
||||||
|
|
||||||
<event symbol="EvtGCStartSweepPhase" value="1016" version="1"
|
<event symbol="EvtGCStartSweepPhase" value="1016" version="1"
|
||||||
channel="MozillaChannel" level="win:Informational"
|
channel="MozillaChannel" level="win:Informational"
|
||||||
template="CompartmentTemplate" task="Allocation" opcode="GCSweepStart"
|
template="VoidTemplate" task="Allocation" opcode="GCSweepStart"
|
||||||
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
||||||
<event symbol="EvtGCEndSweepPhase" value="1017" version="1"
|
<event symbol="EvtGCEndSweepPhase" value="1017" version="1"
|
||||||
channel="MozillaChannel" level="win:Informational"
|
channel="MozillaChannel" level="win:Informational"
|
||||||
template="CompartmentTemplate" task="Allocation" opcode="GCSweepEnd"
|
template="VoidTemplate" task="Allocation" opcode="GCSweepEnd"
|
||||||
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
keywords="SampleKeyword" message="$(string.SampleProvider.SampleEvent.message)"/>
|
||||||
|
|
||||||
<event symbol="EvtMemoryAcquire" value="1018" version="1"
|
<event symbol="EvtMemoryAcquire" value="1018" version="1"
|
||||||
@ -231,8 +231,8 @@
|
|||||||
<data name="Size" inType="win:Int64" outType="xs:long"/>
|
<data name="Size" inType="win:Int64" outType="xs:long"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template tid="CompartmentTemplate">
|
<template tid="BooleanTemplate">
|
||||||
<data name="Compartment" inType="win:Int64" outType="xs:long"/>
|
<data name="Boolean" inType="win:Boolean" outType="xs:boolean"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template tid="MemoryLocationTemplate">
|
<template tid="MemoryLocationTemplate">
|
||||||
@ -259,6 +259,9 @@
|
|||||||
<data name="Int" inType="win:Int32" outType="xs:int"/>
|
<data name="Int" inType="win:Int32" outType="xs:int"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template tid="VoidTemplate">
|
||||||
|
</template>
|
||||||
|
|
||||||
</templates>
|
</templates>
|
||||||
</provider>
|
</provider>
|
||||||
</events>
|
</events>
|
||||||
|
@ -206,7 +206,7 @@ Statistics::beginGC(JSCompartment *comp, gcreason::Reason reason)
|
|||||||
triggerReason = reason;
|
triggerReason = reason;
|
||||||
|
|
||||||
beginPhase(PHASE_GC);
|
beginPhase(PHASE_GC);
|
||||||
Probes::GCStart(compartment);
|
Probes::GCStart(!!compartment);
|
||||||
|
|
||||||
GCCrashData crashData;
|
GCCrashData crashData;
|
||||||
crashData.isCompartment = !!compartment;
|
crashData.isCompartment = !!compartment;
|
||||||
@ -283,7 +283,7 @@ Statistics::printStats()
|
|||||||
void
|
void
|
||||||
Statistics::endGC()
|
Statistics::endGC()
|
||||||
{
|
{
|
||||||
Probes::GCEnd(compartment);
|
Probes::GCEnd(!!compartment);
|
||||||
endPhase(PHASE_GC);
|
endPhase(PHASE_GC);
|
||||||
crash::SnapshotGCStack();
|
crash::SnapshotGCStack();
|
||||||
|
|
||||||
@ -315,16 +315,10 @@ Statistics::beginPhase(Phase phase)
|
|||||||
{
|
{
|
||||||
phaseStarts[phase] = PRMJ_Now();
|
phaseStarts[phase] = PRMJ_Now();
|
||||||
|
|
||||||
if (phase == gcstats::PHASE_SWEEP) {
|
if (phase == gcstats::PHASE_MARK)
|
||||||
Probes::GCStartSweepPhase(NULL);
|
Probes::GCStartMarkPhase();
|
||||||
if (!compartment) {
|
else if (phase == gcstats::PHASE_SWEEP)
|
||||||
for (JSCompartment **c = runtime->compartments.begin();
|
Probes::GCStartSweepPhase();
|
||||||
c != runtime->compartments.end(); ++c)
|
|
||||||
{
|
|
||||||
Probes::GCStartSweepPhase(*c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -333,16 +327,10 @@ Statistics::endPhase(Phase phase)
|
|||||||
phaseEnds[phase] = PRMJ_Now();
|
phaseEnds[phase] = PRMJ_Now();
|
||||||
phaseTimes[phase] += phaseEnds[phase] - phaseStarts[phase];
|
phaseTimes[phase] += phaseEnds[phase] - phaseStarts[phase];
|
||||||
|
|
||||||
if (phase == gcstats::PHASE_SWEEP) {
|
if (phase == gcstats::PHASE_MARK)
|
||||||
if (!compartment) {
|
Probes::GCEndMarkPhase();
|
||||||
for (JSCompartment **c = runtime->compartments.begin();
|
else if (phase == gcstats::PHASE_SWEEP)
|
||||||
c != runtime->compartments.end(); ++c)
|
Probes::GCEndSweepPhase();
|
||||||
{
|
|
||||||
Probes::GCEndSweepPhase(*c);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Probes::GCEndSweepPhase(NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} /* namespace gcstats */
|
} /* namespace gcstats */
|
||||||
|
@ -197,14 +197,14 @@ bool releaseMemory(JSContext *cx, void *address, size_t nbytes);
|
|||||||
* Multiple compartments' GC will be interleaved during a global collection
|
* Multiple compartments' GC will be interleaved during a global collection
|
||||||
* (eg, compartment 1 starts, compartment 2 starts, compartment 1 ends, ...)
|
* (eg, compartment 1 starts, compartment 2 starts, compartment 1 ends, ...)
|
||||||
*/
|
*/
|
||||||
bool GCStart(JSCompartment *compartment);
|
bool GCStart(bool isFull);
|
||||||
bool GCEnd(JSCompartment *compartment);
|
bool GCEnd(bool isFull);
|
||||||
|
|
||||||
bool GCStartMarkPhase(JSCompartment *compartment);
|
bool GCStartMarkPhase();
|
||||||
bool GCEndMarkPhase(JSCompartment *compartment);
|
bool GCEndMarkPhase();
|
||||||
|
|
||||||
bool GCStartSweepPhase(JSCompartment *compartment);
|
bool GCStartSweepPhase();
|
||||||
bool GCEndSweepPhase(JSCompartment *compartment);
|
bool GCEndSweepPhase();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Various APIs for inserting custom probe points. These might be used to mark
|
* Various APIs for inserting custom probe points. These might be used to mark
|
||||||
|
Loading…
Reference in New Issue
Block a user