Bug 1072903 - TraceLogger: Part 5: Log whenever tracelogger gets enabled or disabled, r=bbouvier

This commit is contained in:
Hannes Verschore 2014-11-20 17:44:01 +01:00
parent 8f8b616916
commit 27d8081071
4 changed files with 16 additions and 23 deletions

View File

@ -130,7 +130,7 @@ TraceLoggerThread::init()
}
enabled = 1;
graph.enable();
logTimestamp(TraceLogger_Enable);
return true;
}
@ -157,12 +157,8 @@ TraceLoggerThread::enable()
if (failed)
return false;
// TODO: Remove this. This is so the refactor works with mimimal changes,
// It is the intention to remove this by logging TraceLogger_Enable/TraceLogger_Disable.
events.clear();
enabled = 1;
graph.enable();
logTimestamp(TraceLogger_Enable);
return true;
}
@ -233,12 +229,7 @@ TraceLoggerThread::disable()
return true;
}
graph.log(events);
events.clear();
uint64_t time = rdtsc() - traceLoggers.startupTime;
graph.disable(time);
logTimestamp(TraceLogger_Disable);
enabled = 0;
return true;

View File

@ -377,7 +377,7 @@ TraceLoggerGraph::stopEvent(uint64_t timestamp)
return;
// Forcefully disable logging. We have no stack information anymore.
disable(timestamp);
logTimestamp(TraceLogger_Disable, timestamp);
return;
}
stack.pop();
@ -386,6 +386,9 @@ TraceLoggerGraph::stopEvent(uint64_t timestamp)
void
TraceLoggerGraph::logTimestamp(uint32_t id, uint64_t timestamp)
{
if (id == TraceLogger_Enable)
enabled = true;
if (!enabled)
return;
@ -395,6 +398,9 @@ TraceLoggerGraph::logTimestamp(uint32_t id, uint64_t timestamp)
return;
}
if (id == TraceLogger_Disable)
disable(timestamp);
EventEntry &entry = events.pushUninitialized();
entry.time = timestamp;
entry.textId = id;
@ -488,12 +494,6 @@ TraceLoggerGraph::updateStop(uint32_t treeId, uint64_t timestamp)
return true;
}
void
TraceLoggerGraph::enable()
{
enabled = true;
}
void
TraceLoggerGraph::disable(uint64_t timestamp)
{

View File

@ -199,10 +199,6 @@ class TraceLoggerGraph
// Create a tree out of all the given events.
void log(ContinuousSpace<EventEntry> &events);
// Disable/enable the logger.
void disable(uint64_t timestamp);
void enable();
private:
bool failed;
bool enabled;
@ -250,6 +246,10 @@ class TraceLoggerGraph
// Log an (non-tree) event.
void logTimestamp(uint32_t id, uint64_t timestamp);
// Disable logging and forcefully report all not yet stopped tree events
// as stopped.
void disable(uint64_t timestamp);
};
#endif /* TraceLoggingGraph_h */

View File

@ -57,6 +57,8 @@
#define TRACELOGGER_LOG_ITEMS(_) \
_(Bailout) \
_(Disable) \
_(Enable) \
_(Stop)
// Predefined IDs for common operations. These IDs can be used