Changeset 112551 in webkit
- Timestamp:
- Mar 29, 2012 11:24:45 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r112549 r112551 1 2012-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 1 10 2012-03-29 Pavel Feldman <pfeldman@chromium.org> 2 11 -
trunk/Source/WebCore/platform/ActivePlatformGestureAnimation.cpp
r112364 r112551 50 50 { 51 51 #if PLATFORM(CHROMIUM) 52 TRACE_EVENT_ FINISH0("input", "GestureAnimation", this);52 TRACE_EVENT_ASYNC_END0("input", "GestureAnimation", this); 53 53 #endif 54 54 } … … 61 61 { 62 62 #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()); 64 64 #endif 65 65 } … … 72 72 { 73 73 #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()); 75 75 #endif 76 76 } -
trunk/Source/WebCore/platform/chromium/TraceEvent.h
r111258 r112551 39 39 // TRACE_EVENT_END0("MY_SUBSYSTEM", "SomethingCostly") 40 40 // Note: our tools can't always determine the correct BEGIN/END pairs unless 41 // these are used in the same scope. Use START/FINISHmacros if you need them41 // these are used in the same scope. Use ASYNC_BEGIN/ASYNC_END macros if you need them 42 42 // to be in separate scopes. 43 43 // … … 59 59 // current process id, thread id, and a timestamp in microseconds. 60 60 // 61 // To trace an asynchronous procedure such as an IPC send/receive, use STARTand62 // FINISH:61 // To trace an asynchronous procedure such as an IPC send/receive, use ASYNC_BEGIN and 62 // ASYNC_END: 63 63 // [single threaded sender code] 64 64 // static int send_count = 0; 65 65 // ++send_count; 66 // TRACE_EVENT_ START0("ipc", "message", send_count);66 // TRACE_EVENT_ASYNC_BEGIN0("ipc", "message", send_count); 67 67 // Send(new MyMessage(send_count)); 68 68 // [receive code] 69 69 // void OnMyMessage(send_count) { 70 // TRACE_EVENT_ FINISH0("ipc", "message", send_count);70 // TRACE_EVENT_ASYNC_END0("ipc", "message", send_count); 71 71 // } 72 // The third parameter is a unique ID to match START/FINISHpairs.73 // START and FINISHcan occur on any thread of any traced process. Pointers can72 // 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 74 74 // be used for the ID parameter, and they will be mangled internally so that 75 75 // the same pointer on two different processes will not match. For example: … … 77 77 // public: 78 78 // MyTracedClass() { 79 // TRACE_EVENT_ START0("category", "MyTracedClass", this);79 // TRACE_EVENT_ASYNC_BEGIN0("category", "MyTracedClass", this); 80 80 // } 81 81 // ~MyTracedClass() { 82 // TRACE_EVENT_ FINISH0("category", "MyTracedClass", this);82 // TRACE_EVENT_ASYNC_END0("category", "MyTracedClass", this); 83 83 // } 84 84 // } … … 362 362 value2_name, static_cast<int>(value2_val)) 363 363 364 // Records a single STARTevent called "name" immediately, with 0, 1 or 2364 // Records a single ASYNC_BEGIN event called "name" immediately, with 0, 1 or 2 365 365 // associated arguments. If the category is not enabled, then this 366 366 // does nothing. 367 367 // - category and name strings must have application lifetime (statics or 368 368 // 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, \ 375 382 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, \ 378 385 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, \ 382 389 category, name, id, TRACE_EVENT_FLAG_NONE, \ 383 390 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, \ 386 393 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, \ 389 396 category, name, id, TRACE_EVENT_FLAG_COPY, \ 390 397 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, \ 394 401 category, name, id, TRACE_EVENT_FLAG_COPY, \ 395 402 arg1_name, arg1_val, arg2_name, arg2_val) 396 403 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 398 427 // 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, \ 401 430 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, \ 404 433 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, \ 408 437 category, name, id, TRACE_EVENT_FLAG_NONE, \ 409 438 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, \ 412 441 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, \ 415 444 category, name, id, TRACE_EVENT_FLAG_COPY, \ 416 445 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, \ 420 449 category, name, id, TRACE_EVENT_FLAG_COPY, \ 421 450 arg1_name, arg1_val, arg2_name, arg2_val) … … 482 511 #else 483 512 #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) 490 521 #endif 491 522 … … 542 573 #define INTERNAL_TRACE_EVENT_ADD_WITH_ID(phase, category, name, id, flags, \ 543 574 ...) \ 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) 554 587 #endif 555 588 … … 563 596 #define TRACE_EVENT_PHASE_END ('E') 564 597 #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') 567 601 #define TRACE_EVENT_PHASE_METADATA ('M') 568 602 #define TRACE_EVENT_PHASE_COUNTER ('C') -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp
r112235 r112551 43 43 , m_gestureCurveTarget(target) 44 44 { 45 TRACE_EVENT_ START1("input", "GestureAnimation", this, "curve", m_gestureCurve->debugName());45 TRACE_EVENT_ASYNC_BEGIN1("input", "GestureAnimation", this, "curve", m_gestureCurve->debugName()); 46 46 } 47 47 48 48 CCActiveGestureAnimation::~CCActiveGestureAnimation() 49 49 { 50 TRACE_EVENT_ FINISH0("input", "GestureAnimation", this);50 TRACE_EVENT_ASYNC_END0("input", "GestureAnimation", this); 51 51 } 52 52 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp
r112446 r112551 49 49 { 50 50 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); 56 56 } 57 57
Note: See TracChangeset
for help on using the changeset viewer.