Updated event trace code to stop on buffer full condition for any child process. Added more trace events to show expensive blocking IPCs in renderer process.

BUG=79510
TEST=start trace in about:gpu; open some WebGL windows; when trace Buffer usage reaches 100%, verify that the trace is ended

Review URL: http://codereview.chromium.org/6870020

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82115 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gpu/command_buffer/client/cmd_buffer_helper.cc b/gpu/command_buffer/client/cmd_buffer_helper.cc
index d3eaca1..3f7d94e 100644
--- a/gpu/command_buffer/client/cmd_buffer_helper.cc
+++ b/gpu/command_buffer/client/cmd_buffer_helper.cc
@@ -62,6 +62,7 @@
 // Calls Flush() and then waits until the buffer is empty. Break early if the
 // error is set.
 bool CommandBufferHelper::Finish() {
+  GPU_TRACE_EVENT0("gpu", "CommandBufferHelper::Finish");
   do {
     // Do not loop forever if the flush fails, meaning the command buffer reader
     // has shutdown.
@@ -83,6 +84,7 @@
   cmd::SetToken& cmd = GetCmdSpace<cmd::SetToken>();
   cmd.Init(token_);
   if (token_ == 0) {
+    GPU_TRACE_EVENT0("gpu", "CommandBufferHelper::InsertToken(wrapped)");
     // we wrapped
     Finish();
     GPU_DCHECK_EQ(token_, last_token_read_);
@@ -93,6 +95,7 @@
 // Waits until the current token value is greater or equal to the value passed
 // in argument.
 void CommandBufferHelper::WaitForToken(int32 token) {
+  GPU_TRACE_EVENT0("gpu", "CommandBufferHelper::WaitForToken");
   // Return immediately if corresponding InsertToken failed.
   if (token < 0)
     return;