Changeset 112551 in webkit


Ignore:
Timestamp:
Mar 29, 2012 11:24:45 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Sync up WebKit TraceEvent.h with chromium trace_event.h
https://bugs.webkit.org/show_bug.cgi?id=82527

Patch by John Bates <jbates@google.com> on 2012-03-29
Reviewed by James Robinson.

  • platform/chromium/TraceEvent.h:
Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r112549 r112551  
     12012-03-29  John Bates  <jbates@google.com>
     2
     3        Sync up WebKit TraceEvent.h with chromium trace_event.h
     4        https://bugs.webkit.org/show_bug.cgi?id=82527
     5
     6        Reviewed by James Robinson.
     7
     8        * platform/chromium/TraceEvent.h:
     9
    1102012-03-29  Pavel Feldman  <pfeldman@chromium.org>
    211
  • trunk/Source/WebCore/platform/ActivePlatformGestureAnimation.cpp

    r112364 r112551  
    5050{
    5151#if PLATFORM(CHROMIUM)
    52     TRACE_EVENT_FINISH0("input", "GestureAnimation", this);
     52    TRACE_EVENT_ASYNC_END0("input", "GestureAnimation", this);
    5353#endif
    5454}
     
    6161{
    6262#if PLATFORM(CHROMIUM)
    63     TRACE_EVENT_START1("input", "GestureAnimation", this, "curve", m_curve->debugName());
     63    TRACE_EVENT_ASYNC_BEGIN1("input", "GestureAnimation", this, "curve", m_curve->debugName());
    6464#endif
    6565}
     
    7272{
    7373#if PLATFORM(CHROMIUM)
    74     TRACE_EVENT_START1("input", "GestureAnimation", this, "curve", m_curve->debugName());
     74    TRACE_EVENT_ASYNC_BEGIN1("input", "GestureAnimation", this, "curve", m_curve->debugName());
    7575#endif
    7676}
  • trunk/Source/WebCore/platform/chromium/TraceEvent.h

    r111258 r112551  
    3939//   TRACE_EVENT_END0("MY_SUBSYSTEM", "SomethingCostly")
    4040// Note: our tools can't always determine the correct BEGIN/END pairs unless
    41 // these are used in the same scope. Use START/FINISH macros if you need them
     41// these are used in the same scope. Use ASYNC_BEGIN/ASYNC_END macros if you need them
    4242// to be in separate scopes.
    4343//
     
    5959// current process id, thread id, and a timestamp in microseconds.
    6060//
    61 // To trace an asynchronous procedure such as an IPC send/receive, use START and
    62 // FINISH:
     61// To trace an asynchronous procedure such as an IPC send/receive, use ASYNC_BEGIN and
     62// ASYNC_END:
    6363//   [single threaded sender code]
    6464//     static int send_count = 0;
    6565//     ++send_count;
    66 //     TRACE_EVENT_START0("ipc", "message", send_count);
     66//     TRACE_EVENT_ASYNC_BEGIN0("ipc", "message", send_count);
    6767//     Send(new MyMessage(send_count));
    6868//   [receive code]
    6969//     void OnMyMessage(send_count) {
    70 //       TRACE_EVENT_FINISH0("ipc", "message", send_count);
     70//       TRACE_EVENT_ASYNC_END0("ipc", "message", send_count);
    7171//     }
    72 // The third parameter is a unique ID to match START/FINISH pairs.
    73 // START and FINISH can occur on any thread of any traced process. Pointers can
     72// The third parameter is a unique ID to match ASYNC_BEGIN/ASYNC_END pairs.
     73// ASYNC_BEGIN and ASYNC_END can occur on any thread of any traced process. Pointers can
    7474// be used for the ID parameter, and they will be mangled internally so that
    7575// the same pointer on two different processes will not match. For example:
     
    7777//    public:
    7878//     MyTracedClass() {
    79 //       TRACE_EVENT_START0("category", "MyTracedClass", this);
     79//       TRACE_EVENT_ASYNC_BEGIN0("category", "MyTracedClass", this);
    8080//     }
    8181//     ~MyTracedClass() {
    82 //       TRACE_EVENT_FINISH0("category", "MyTracedClass", this);
     82//       TRACE_EVENT_ASYNC_END0("category", "MyTracedClass", this);
    8383//     }
    8484//   }
     
    362362        value2_name, static_cast<int>(value2_val))
    363363
    364 // Records a single START event called "name" immediately, with 0, 1 or 2
     364// Records a single ASYNC_BEGIN event called "name" immediately, with 0, 1 or 2
    365365// associated arguments. If the category is not enabled, then this
    366366// does nothing.
    367367// - category and name strings must have application lifetime (statics or
    368368//   literals). They may not include " chars.
    369 // - |id| is used to match the START event with the FINISH event. It must either
    370 //   be a pointer or an integer value up to 64 bits. If it's a pointer, the bits
    371 //   will be xored with a hash of the process ID so that the same pointer on
    372 //   two different processes will not collide.
    373 #define TRACE_EVENT_START0(category, name, id) \
    374     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
     369// - |id| is used to match the ASYNC_BEGIN event with the ASYNC_END event. ASYNC
     370//   events are considered to match if their category, name and id values all
     371//   match. |id| must either be a pointer or an integer value up to 64 bits. If
     372//   it's a pointer, the bits will be xored with a hash of the process ID so
     373//   that the same pointer on two different processes will not collide.
     374// An asynchronous operation can consist of multiple phases. The first phase is
     375// defined by the ASYNC_BEGIN calls. Additional phases can be defined using the
     376// ASYNC_STEP_BEGIN macros. When the operation completes, call ASYNC_END.
     377// An async operation can span threads and processes, but all events in that
     378// operation must use the same |name| and |id|. Each event can have its own
     379// args.
     380#define TRACE_EVENT_ASYNC_BEGIN0(category, name, id) \
     381    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_BEGIN, \
    375382        category, name, id, TRACE_EVENT_FLAG_NONE)
    376 #define TRACE_EVENT_START1(category, name, id, arg1_name, arg1_val) \
    377     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
     383#define TRACE_EVENT_ASYNC_BEGIN1(category, name, id, arg1_name, arg1_val) \
     384    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_BEGIN, \
    378385        category, name, id, TRACE_EVENT_FLAG_NONE, arg1_name, arg1_val)
    379 #define TRACE_EVENT_START2(category, name, id, arg1_name, arg1_val, \
    380         arg2_name, arg2_val) \
    381     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
     386#define TRACE_EVENT_ASYNC_BEGIN2(category, name, id, arg1_name, arg1_val, \
     387        arg2_name, arg2_val) \
     388    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_BEGIN, \
    382389        category, name, id, TRACE_EVENT_FLAG_NONE, \
    383390        arg1_name, arg1_val, arg2_name, arg2_val)
    384 #define TRACE_EVENT_COPY_START0(category, name, id) \
    385     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
     391#define TRACE_EVENT_COPY_ASYNC_BEGIN0(category, name, id) \
     392    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_BEGIN, \
    386393        category, name, id, TRACE_EVENT_FLAG_COPY)
    387 #define TRACE_EVENT_COPY_START1(category, name, id, arg1_name, arg1_val) \
    388     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
     394#define TRACE_EVENT_COPY_ASYNC_BEGIN1(category, name, id, arg1_name, arg1_val) \
     395    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_BEGIN, \
    389396        category, name, id, TRACE_EVENT_FLAG_COPY, \
    390397        arg1_name, arg1_val)
    391 #define TRACE_EVENT_COPY_START2(category, name, id, arg1_name, arg1_val, \
    392         arg2_name, arg2_val) \
    393     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_START, \
     398#define TRACE_EVENT_COPY_ASYNC_BEGIN2(category, name, id, arg1_name, arg1_val, \
     399        arg2_name, arg2_val) \
     400    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_BEGIN, \
    394401        category, name, id, TRACE_EVENT_FLAG_COPY, \
    395402        arg1_name, arg1_val, arg2_name, arg2_val)
    396403
    397 // Records a single FINISH event for "name" immediately. If the category
     404// Records a single ASYNC_STEP event for |step| immediately. If the category
     405// is not enabled, then this does nothing. The |name| and |id| must match the
     406// ASYNC_BEGIN event above. The |step| param identifies this step within the
     407// async event. This should be called at the beginning of the next phase of an
     408// asynchronous operation.
     409#define TRACE_EVENT_ASYNC_BEGIN_STEP0(category, name, id, step) \
     410    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_STEP, \
     411        category, name, id, TRACE_EVENT_FLAG_NONE, "step", step)
     412#define TRACE_EVENT_ASYNC_BEGIN_STEP1(category, name, id, step, \
     413                                      arg1_name, arg1_val) \
     414    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_STEP, \
     415        category, name, id, TRACE_EVENT_FLAG_NONE, "step", step, \
     416        arg1_name, arg1_val)
     417#define TRACE_EVENT_COPY_ASYNC_BEGIN_STEP0(category, name, id, step) \
     418    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_STEP, \
     419        category, name, id, TRACE_EVENT_FLAG_COPY, "step", step)
     420#define TRACE_EVENT_COPY_ASYNC_BEGIN_STEP1(category, name, id, step, \
     421        arg1_name, arg1_val) \
     422    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_STEP, \
     423        category, name, id, TRACE_EVENT_FLAG_COPY, "step", step, \
     424        arg1_name, arg1_val)
     425
     426// Records a single ASYNC_END event for "name" immediately. If the category
    398427// is not enabled, then this does nothing.
    399 #define TRACE_EVENT_FINISH0(category, name, id) \
    400     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
     428#define TRACE_EVENT_ASYNC_END0(category, name, id) \
     429    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_END, \
    401430        category, name, id, TRACE_EVENT_FLAG_NONE)
    402 #define TRACE_EVENT_FINISH1(category, name, id, arg1_name, arg1_val) \
    403     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
     431#define TRACE_EVENT_ASYNC_END1(category, name, id, arg1_name, arg1_val) \
     432    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_END, \
    404433        category, name, id, TRACE_EVENT_FLAG_NONE, arg1_name, arg1_val)
    405 #define TRACE_EVENT_FINISH2(category, name, id, arg1_name, arg1_val, \
    406         arg2_name, arg2_val) \
    407     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
     434#define TRACE_EVENT_ASYNC_END2(category, name, id, arg1_name, arg1_val, \
     435        arg2_name, arg2_val) \
     436    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_END, \
    408437        category, name, id, TRACE_EVENT_FLAG_NONE, \
    409438        arg1_name, arg1_val, arg2_name, arg2_val)
    410 #define TRACE_EVENT_COPY_FINISH0(category, name, id) \
    411     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
     439#define TRACE_EVENT_COPY_ASYNC_END0(category, name, id) \
     440    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_END, \
    412441        category, name, id, TRACE_EVENT_FLAG_COPY)
    413 #define TRACE_EVENT_COPY_FINISH1(category, name, id, arg1_name, arg1_val) \
    414     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
     442#define TRACE_EVENT_COPY_ASYNC_END1(category, name, id, arg1_name, arg1_val) \
     443    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_END, \
    415444        category, name, id, TRACE_EVENT_FLAG_COPY, \
    416445        arg1_name, arg1_val)
    417 #define TRACE_EVENT_COPY_FINISH2(category, name, id, arg1_name, arg1_val, \
    418         arg2_name, arg2_val) \
    419     INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_FINISH, \
     446#define TRACE_EVENT_COPY_ASYNC_END2(category, name, id, arg1_name, arg1_val, \
     447        arg2_name, arg2_val) \
     448    INTERNAL_TRACE_EVENT_ADD_WITH_ID(TRACE_EVENT_PHASE_ASYNC_END, \
    420449        category, name, id, TRACE_EVENT_FLAG_COPY, \
    421450        arg1_name, arg1_val, arg2_name, arg2_val)
     
    482511#else
    483512#define INTERNAL_TRACE_EVENT_ADD(phase, category, name, flags, ...) \
    484     INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
    485     if (*INTERNALTRACEEVENTUID(catstatic)) { \
    486       WebCore::TraceEvent::addTraceEvent( \
    487           phase, INTERNALTRACEEVENTUID(catstatic), name, \
    488           WebCore::TraceEvent::noEventId, flags, ##__VA_ARGS__); \
    489     }
     513    do { \
     514        INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
     515        if (*INTERNALTRACEEVENTUID(catstatic)) { \
     516            WebCore::TraceEvent::addTraceEvent( \
     517                phase, INTERNALTRACEEVENTUID(catstatic), name, \
     518                WebCore::TraceEvent::noEventId, flags, ##__VA_ARGS__); \
     519        } \
     520    } while (0)
    490521#endif
    491522
     
    542573#define INTERNAL_TRACE_EVENT_ADD_WITH_ID(phase, category, name, id, flags, \
    543574                                         ...) \
    544     INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
    545     if (*INTERNALTRACEEVENTUID(catstatic)) { \
    546       unsigned char traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
    547       WebCore::TraceEvent::TraceID traceEventTraceID( \
    548           id, &traceEventFlags); \
    549       WebCore::TraceEvent::addTraceEvent( \
    550           phase, INTERNALTRACEEVENTUID(catstatic), \
    551           name, traceEventTraceID.data(), traceEventFlags, \
    552           ##__VA_ARGS__); \
    553     }
     575    do { \
     576        INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(category); \
     577        if (*INTERNALTRACEEVENTUID(catstatic)) { \
     578            unsigned char traceEventFlags = flags | TRACE_EVENT_FLAG_HAS_ID; \
     579            WebCore::TraceEvent::TraceID traceEventTraceID( \
     580                id, &traceEventFlags); \
     581            WebCore::TraceEvent::addTraceEvent( \
     582                phase, INTERNALTRACEEVENTUID(catstatic), \
     583                name, traceEventTraceID.data(), traceEventFlags, \
     584                ##__VA_ARGS__); \
     585        } \
     586    } while (0)
    554587#endif
    555588
     
    563596#define TRACE_EVENT_PHASE_END      ('E')
    564597#define TRACE_EVENT_PHASE_INSTANT  ('I')
    565 #define TRACE_EVENT_PHASE_START    ('S')
    566 #define TRACE_EVENT_PHASE_FINISH   ('F')
     598#define TRACE_EVENT_PHASE_ASYNC_BEGIN ('S')
     599#define TRACE_EVENT_PHASE_ASYNC_STEP  ('T')
     600#define TRACE_EVENT_PHASE_ASYNC_END   ('F')
    567601#define TRACE_EVENT_PHASE_METADATA ('M')
    568602#define TRACE_EVENT_PHASE_COUNTER  ('C')
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp

    r112235 r112551  
    4343    , m_gestureCurveTarget(target)
    4444{
    45     TRACE_EVENT_START1("input", "GestureAnimation", this, "curve", m_gestureCurve->debugName());
     45    TRACE_EVENT_ASYNC_BEGIN1("input", "GestureAnimation", this, "curve", m_gestureCurve->debugName());
    4646}
    4747
    4848CCActiveGestureAnimation::~CCActiveGestureAnimation()
    4949{
    50     TRACE_EVENT_FINISH0("input", "GestureAnimation", this);
     50    TRACE_EVENT_ASYNC_END0("input", "GestureAnimation", this);
    5151}
    5252
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp

    r112446 r112551  
    4949{
    5050    if (visible) {
    51         TRACE_EVENT_START1("webkit", "CCLayerTreeHostImpl::setVisible", id, "CCLayerTreeHostImpl", id);
    52         return;
    53     }
    54 
    55     TRACE_EVENT_FINISH0("webkit", "CCLayerTreeHostImpl::setVisible", id);
     51        TRACE_EVENT_ASYNC_BEGIN1("webkit", "CCLayerTreeHostImpl::setVisible", id, "CCLayerTreeHostImpl", id);
     52        return;
     53    }
     54
     55    TRACE_EVENT_ASYNC_END0("webkit", "CCLayerTreeHostImpl::setVisible", id);
    5656}
    5757
Note: See TracChangeset for help on using the changeset viewer.