Rearrange renderer scheduler tracing categories and track more states |
|||
Issue descriptionThe goal is rearranging trace events into 4 categories: - renderer.scheduler Main thread flamegraphs (as now) plus visualisation of main states of RendererScheduler (visibility/use_case/audio/etc). - disabled-by-default-renderer.scheduler Additional information which adds visual noise to the trace viewer but does not increase trace size. At this moment this category will include various counters. - disabled-by-default-renderer.scheduler.verbose Various objects dumps while trying to keep trace size reasonable. - disabled-by-default-renderer.scheduler.debug (currently empty) All information that renderer scheduler has, including queued task metadata with location.
,
Sep 25 2017
Small utils to analyse trace event sizes: https://gist.github.com/gkraynov/a2616bc72afa034c8bb715132ecc05e5 Current state of things: main 2109 KiB TaskQueueManager::RunTask 1169 KiB TaskQueueManager::DoWork 996 KiB RealTimeDomain::DelayTillNextTask 246 KiB RendererSchedulerIdlePeriod 65 KiB TaskQueueThrottler::OnQueueNextWakeUpChanged 48 KiB RendererScheduler.UseCase 18 KiB TaskQueueThrottler_TaskQueueThrottled 18 KiB TaskQueueThrottler_TaskQueueUnthrottled 11 KiB SingleThreadIdleTaskRunner::RunTask 5 KiB TaskQueueThrottler::MaybeSchedulePumpThrottledTasks 4 KiB TaskQueueThrottler::PumpThrottledTasks 2 KiB RendererScheduler.Backgrounded 1 KiB TaskQueueManager::UnregisterTaskQueue 0 KiB IdleCanceledDelayedTaskSweeper::SweepIdleTask 0 KiB RendererScheduler.AudioPlaying 0 KiB BudgetPool_DisableThrottling 0 KiB BudgetPool_EnableThrottling 0 KiB TaskQueueThrottler_DisableThrottling details 186022 KiB TaskQueueManager 4293 KiB RendererScheduler 3249 KiB TaskQueueManager::WakeUpReadyDelayedQueues 1432 KiB worker_default_tq 819 KiB TaskQueueManager::MaybeScheduleImmediateWorkLocked::PostTask 414 KiB frame_throttleable_tq 346 KiB DidProcessTask 229 KiB compositor_tq 219 KiB SetIdlePeriodState 199 KiB RendererSchedulerImpl::DidHandleInputEventOnCompositorThread 186 KiB RendererScheduler.loading_tasks_seem_expensive 184 KiB RendererScheduler.timer_tasks_seem_expensive 174 KiB RendererSchedulerImpl::WillBeginFrame 165 KiB touchstart_expected_soon 163 KiB expensive_task_policy 161 KiB RendererSchedulerImpl::DidHandleInputEventOnMainThread 156 KiB default_tq 151 KiB rail_mode 150 KiB use_case 150 KiB frame_loading_tq 109 KiB default_loading_tq 97 KiB EndIdlePeriod 91 KiB RendererSchedulerImpl::DidCommitFrameToCompositor 86 KiB RendererSchedulerImpl::EndIdlePeriod 70 KiB frame_pausable_tq 68 KiB StartIdlePeriod 65 KiB RendererSchedulerImpl::UpdateForInputEventOnCompositorThread 46 KiB control_tq 38 KiB is_gesture_active 35 KiB frame_unpausable_tq 30 KiB default_timer_tq 17 KiB idle_tq 9 KiB OnIdleTaskPostedOnMainThread 9 KiB OnIdleTaskPosted 8 KiB RendererScheduler.RendererMainThreadLoad 5 KiB RendererSchedulerImpl::OnPendingTasksChanged 5 KiB RendererScheduler.RendererMainThreadLoad.Background 3 KiB RendererScheduler.RendererMainThreadLoad.Foreground 3 KiB estimated_queueing_time_for_window 2 KiB CanExceedIdleDeadlineIfRequired 1 KiB RendererSchedulerImpl::BeginMainFrameNotExpectedUntil 1 KiB NotStartingIdlePeriodBecauseDeadlineIsTooClose 1 KiB frame_loading_control_tq 1 KiB RendererSchedulerImpl::DidStartProvisionalLoad 1 KiB RendererSchedulerImpl::SetAllRenderWidgetsHidden 1 KiB RendererSchedulerImpl::DidCommitProvisionalLoad 0 KiB RendererSchedulerImpl::ResetForNavigationLocked 0 KiB RendererSchedulerImpl::OnRendererForegrounded 0 KiB RendererSchedulerImpl::OnRendererVisible 0 KiB RendererSchedulerImpl::OnRendererHidden 0 KiB RendererSchedulerImpl::OnRendererBackgrounded 0 KiB RendererSchedulerImpl::BeginFrameNotExpectedSoon 0 KiB RendererSchedulerImpl::OnFirstMeaningfulPaint 0 KiB UpdateLongIdlePeriodStateAfterIdleTask 0 KiB EnableLongIdlePeriod verbose <no events> debug <no events> Gonna move TaskQueueManager and RendererScheduler object dumps to debug category as it tremendous in size.
,
Sep 27 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/86bfe06978ca781f21a84f9b8b6e33d93e9bc285 commit 86bfe06978ca781f21a84f9b8b6e33d93e9bc285 Author: Greg Kraynov <kraynov@chromium.org> Date: Wed Sep 27 14:38:11 2017 Blink Scheduler: Move heavy object dumps to debug category. Object dumps of TaskQueueManager and RendererScheduler may take 90% of the trace. It moved to debug category with the heaviest sections enabled only when enable_verbose_snapshots is on. Bug: 765660 Change-Id: If84edb1c45257f652da65a28dc4253cd7b39c4a4 Reviewed-on: https://chromium-review.googlesource.com/681659 Reviewed-by: Alexander Timin <altimin@chromium.org> Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Cr-Commit-Position: refs/heads/master@{#504666} [modify] https://crrev.com/86bfe06978ca781f21a84f9b8b6e33d93e9bc285/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/86bfe06978ca781f21a84f9b8b6e33d93e9bc285/third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc [modify] https://crrev.com/86bfe06978ca781f21a84f9b8b6e33d93e9bc285/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler.cc [modify] https://crrev.com/86bfe06978ca781f21a84f9b8b6e33d93e9bc285/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
,
Oct 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5b3cdd97ad11f994f5671bc5de4ef1f06de81635 commit 5b3cdd97ad11f994f5671bc5de4ef1f06de81635 Author: Greg Kraynov <kraynov@chromium.org> Date: Tue Oct 03 08:56:31 2017 Blink Scheduler: Tracing refactoring. - Support different categories in StateTracer. - Distinct TRACE_EVENT stubs for each StateTracer category. - Fixed bug when StateTracer didn't emit initial slice. - AreVerboseSnaphotsEnabled() helper method. - WarmupCategories() helper method. - Removed abandoned worker.scheduler.debug category. Bug: 765660 Change-Id: Ic4436fc6bc4268741ae57d3edbb0ae53451e4125 Reviewed-on: https://chromium-review.googlesource.com/692376 Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#505989} [modify] https://crrev.com/5b3cdd97ad11f994f5671bc5de4ef1f06de81635/third_party/WebKit/Source/platform/scheduler/BUILD.gn [modify] https://crrev.com/5b3cdd97ad11f994f5671bc5de4ef1f06de81635/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/5b3cdd97ad11f994f5671bc5de4ef1f06de81635/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler.cc [modify] https://crrev.com/5b3cdd97ad11f994f5671bc5de4ef1f06de81635/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/5b3cdd97ad11f994f5671bc5de4ef1f06de81635/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h [delete] https://crrev.com/5c6da120dc404e10f642e4540426999875b68017/third_party/WebKit/Source/platform/scheduler/util/state_tracer.h [add] https://crrev.com/5b3cdd97ad11f994f5671bc5de4ef1f06de81635/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.cc [add] https://crrev.com/5b3cdd97ad11f994f5671bc5de4ef1f06de81635/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.h
,
Oct 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a1e35c5b6d3334af7da7ce3751f802f34388c6ec commit a1e35c5b6d3334af7da7ce3751f802f34388c6ec Author: Henrik Kjellander <kjellander@chromium.org> Date: Tue Oct 03 09:36:52 2017 Revert "Blink Scheduler: Tracing refactoring." This reverts commit 5b3cdd97ad11f994f5671bc5de4ef1f06de81635. Reason for revert: Breaks compilation on Linux Builder (dbg): https://luci-milo.appspot.com/buildbot/chromium.linux/Linux%20Builder%20%28dbg%29/116388 Original change's description: > Blink Scheduler: Tracing refactoring. > > - Support different categories in StateTracer. > - Distinct TRACE_EVENT stubs for each StateTracer category. > - Fixed bug when StateTracer didn't emit initial slice. > - AreVerboseSnaphotsEnabled() helper method. > - WarmupCategories() helper method. > - Removed abandoned worker.scheduler.debug category. > > Bug: 765660 > Change-Id: Ic4436fc6bc4268741ae57d3edbb0ae53451e4125 > Reviewed-on: https://chromium-review.googlesource.com/692376 > Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> > Reviewed-by: Alexander Timin <altimin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#505989} TBR=kraynov@chromium.org,altimin@chromium.org Change-Id: Id6b6856ed92e8e88d3a916fca919d5d7eb0cc574 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 765660 Reviewed-on: https://chromium-review.googlesource.com/697444 Reviewed-by: Henrik Kjellander <kjellander@chromium.org> Commit-Queue: Henrik Kjellander <kjellander@chromium.org> Cr-Commit-Position: refs/heads/master@{#505991} [modify] https://crrev.com/a1e35c5b6d3334af7da7ce3751f802f34388c6ec/third_party/WebKit/Source/platform/scheduler/BUILD.gn [modify] https://crrev.com/a1e35c5b6d3334af7da7ce3751f802f34388c6ec/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/a1e35c5b6d3334af7da7ce3751f802f34388c6ec/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler.cc [modify] https://crrev.com/a1e35c5b6d3334af7da7ce3751f802f34388c6ec/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/a1e35c5b6d3334af7da7ce3751f802f34388c6ec/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h [add] https://crrev.com/a1e35c5b6d3334af7da7ce3751f802f34388c6ec/third_party/WebKit/Source/platform/scheduler/util/state_tracer.h [delete] https://crrev.com/edf530dc77d657db712928dd9cba2bbac0693aaa/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.cc [delete] https://crrev.com/edf530dc77d657db712928dd9cba2bbac0693aaa/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.h
,
Oct 3 2017
Regarding revert at comment #5 Steps to reproduce (on Linux): $ gn gen --args='is_debug=true is_component_build=true' out/Debug $ ninja -C out/Debug blink_platform_unittests
,
Oct 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/413046b389220ea6bdffc2a0794a1457c3be0943 commit 413046b389220ea6bdffc2a0794a1457c3be0943 Author: Greg Kraynov <kraynov@chromium.org> Date: Tue Oct 03 13:48:15 2017 [Reland] Blink Scheduler: Tracing refactoring. Added PLATFORM_EXPORT macro missing what caused the revert. - Support different categories in StateTracer. - Distinct TRACE_EVENT stubs for each StateTracer category. - Fixed bug when StateTracer didn't emit initial slice. - AreVerboseSnaphotsEnabled() helper method. - WarmupCategories() helper method. - Removed abandoned worker.scheduler.debug category. Original CL: https://chromium-review.googlesource.com/692376 Bug: 765660 Change-Id: Ifd0df2216b7b3e042c56966756be64ab41d4cb3c Reviewed-on: https://chromium-review.googlesource.com/697446 Reviewed-by: Alexander Timin <altimin@chromium.org> Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Cr-Commit-Position: refs/heads/master@{#506020} [modify] https://crrev.com/413046b389220ea6bdffc2a0794a1457c3be0943/third_party/WebKit/Source/platform/scheduler/BUILD.gn [modify] https://crrev.com/413046b389220ea6bdffc2a0794a1457c3be0943/third_party/WebKit/Source/platform/scheduler/base/task_queue_impl.cc [modify] https://crrev.com/413046b389220ea6bdffc2a0794a1457c3be0943/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler.cc [modify] https://crrev.com/413046b389220ea6bdffc2a0794a1457c3be0943/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/413046b389220ea6bdffc2a0794a1457c3be0943/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h [delete] https://crrev.com/7ac0cee74768ad2391241bb89985ee4b51520ee3/third_party/WebKit/Source/platform/scheduler/util/state_tracer.h [add] https://crrev.com/413046b389220ea6bdffc2a0794a1457c3be0943/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.cc [add] https://crrev.com/413046b389220ea6bdffc2a0794a1457c3be0943/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.h
,
Oct 4 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/865500eac2a8420d1efc5f8768a9249bd86f10f3 commit 865500eac2a8420d1efc5f8768a9249bd86f10f3 Author: Greg Kraynov <kraynov@chromium.org> Date: Wed Oct 04 11:10:55 2017 Blink Scheduler: Trace more states. - touchstart_expected_soon - loading_tasks_seems_expensive - timer_tasks_seems_expensive Bug: 765660 Change-Id: I75cf6681410b14b1f378024bd0c568d261ecd3f7 Reviewed-on: https://chromium-review.googlesource.com/698325 Reviewed-by: Alexander Timin <altimin@chromium.org> Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Cr-Commit-Position: refs/heads/master@{#506365} [modify] https://crrev.com/865500eac2a8420d1efc5f8768a9249bd86f10f3/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/865500eac2a8420d1efc5f8768a9249bd86f10f3/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h
,
Oct 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/89b6ce1ae3701d825a5519a156d6110c0b5e8e9a commit 89b6ce1ae3701d825a5519a156d6110c0b5e8e9a Author: Greg Kraynov <kraynov@chromium.org> Date: Wed Oct 11 15:18:02 2017 Blink Scheduler: TraceableState class for automatic tracing. Bug: 765660 Change-Id: I8a46111cd13577d2e999e5038d1d10e90d3d2ebc Reviewed-on: https://chromium-review.googlesource.com/709554 Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#507985} [modify] https://crrev.com/89b6ce1ae3701d825a5519a156d6110c0b5e8e9a/third_party/WebKit/Source/platform/scheduler/BUILD.gn [modify] https://crrev.com/89b6ce1ae3701d825a5519a156d6110c0b5e8e9a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/89b6ce1ae3701d825a5519a156d6110c0b5e8e9a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h [modify] https://crrev.com/89b6ce1ae3701d825a5519a156d6110c0b5e8e9a/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.h [add] https://crrev.com/89b6ce1ae3701d825a5519a156d6110c0b5e8e9a/third_party/WebKit/Source/platform/scheduler/util/tracing_helper_unittest.cc
,
Oct 12 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6de0faf8a14ad0cdcda169e825002b5e525d9881 commit 6de0faf8a14ad0cdcda169e825002b5e525d9881 Author: Greg Kraynov <kraynov@chromium.org> Date: Thu Oct 12 14:04:12 2017 Blink Scheduler: Merge tracing helpers. Bug: 765660 Change-Id: I4f1136b91b9fd4f6bc6ae3724733cb01a81b3365 Reviewed-on: https://chromium-review.googlesource.com/713314 Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Reviewed-by: Alexander Timin <altimin@chromium.org> Cr-Commit-Position: refs/heads/master@{#508343} [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/BUILD.gn [delete] https://crrev.com/1ea7b9cd39e000735df1e2ad61650bdd7ca3b3d0/third_party/WebKit/Source/platform/scheduler/base/trace_helper.cc [delete] https://crrev.com/1ea7b9cd39e000735df1e2ad61650bdd7ca3b3d0/third_party/WebKit/Source/platform/scheduler/base/trace_helper.h [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/renderer/cpu_time_budget_pool.cc [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/renderer/task_queue_throttler.cc [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/renderer/wake_up_budget_pool.cc [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.cc [modify] https://crrev.com/6de0faf8a14ad0cdcda169e825002b5e525d9881/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.h
,
Oct 17 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/09a0520fddc65ecf498523c21e02fc67db60eaba commit 09a0520fddc65ecf498523c21e02fc67db60eaba Author: Greg Kraynov <kraynov@chromium.org> Date: Tue Oct 17 17:07:13 2017 Blink Scheduler: Basic tracing for WebFrameScheduler state. Added traceable states inder disabled-by-default category beacuse adds visual noise (needs proper grouping and labeling). Bug: 765660 Change-Id: I61fb9275d68103940c5feb6016ff572309475a37 Reviewed-on: https://chromium-review.googlesource.com/721123 Reviewed-by: Alexander Timin <altimin@chromium.org> Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Cr-Commit-Position: refs/heads/master@{#509424} [modify] https://crrev.com/09a0520fddc65ecf498523c21e02fc67db60eaba/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc [modify] https://crrev.com/09a0520fddc65ecf498523c21e02fc67db60eaba/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc [modify] https://crrev.com/09a0520fddc65ecf498523c21e02fc67db60eaba/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.h [modify] https://crrev.com/09a0520fddc65ecf498523c21e02fc67db60eaba/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.cc [modify] https://crrev.com/09a0520fddc65ecf498523c21e02fc67db60eaba/third_party/WebKit/Source/platform/scheduler/renderer/web_view_scheduler_impl.h
,
Oct 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ede5f9a514c1a528deaca561c4059c50403cc981 commit ede5f9a514c1a528deaca561c4059c50403cc981 Author: Greg Kraynov <kraynov@chromium.org> Date: Mon Oct 23 14:31:20 2017 Blink Scheduler: Fix TraceableState constructor. Tracing might be already enabled when we construct a TraceableState. Missing event in that case has been fixed. Bug: 765660 Change-Id: I6b2aae0b9ca4bcfaf79a6f5f56c703ae79ff2364 Reviewed-on: https://chromium-review.googlesource.com/732662 Reviewed-by: Sami Kyöstilä <skyostil@chromium.org> Commit-Queue: Grigoriy Kraynov <kraynov@chromium.org> Cr-Commit-Position: refs/heads/master@{#510786} [modify] https://crrev.com/ede5f9a514c1a528deaca561c4059c50403cc981/third_party/WebKit/Source/platform/scheduler/util/tracing_helper.h
,
Nov 1 2017
,
Nov 3 2017
Closing this tracker bug, continue our efforts in https://crbug.com/780473 |
|||
►
Sign in to add a comment |
|||
Comment 1 by bugdroid1@chromium.org
, Sep 20 2017