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 -->
|
||||
<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>
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user