Commit 6c7d9b54 authored by Farah Charab's avatar Farah Charab Committed by Commit Bot

Tracing: Add capability to trace the priority of the tasks executed.

Change-Id: I0ab635c48c63ff68a8aeca1d725904d0f4eb56b9
Reviewed-on: https://chromium-review.googlesource.com/1053774Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Commit-Queue: Farah Charab <farahcharab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558361}
parent 5ef2f14a
......@@ -203,6 +203,13 @@ const char* OptionalTaskDescriptionToString(
return MainThreadTaskQueue::NameForQueueType(desc->queue_type.value());
}
const char* OptionalTaskPriorityToString(
base::Optional<TaskQueue::QueuePriority> priority) {
if (!priority)
return nullptr;
return TaskQueue::PriorityToString(priority.value());
}
bool IsUnconditionalHighPriorityInputEnabled() {
return base::FeatureList::IsEnabled(kHighPriorityInput);
}
......@@ -528,6 +535,12 @@ MainThreadSchedulerImpl::MainThreadOnly::MainThreadOnly(
main_thread_scheduler_impl,
&main_thread_scheduler_impl->tracing_controller_,
OptionalTaskDescriptionToString),
task_priority_for_tracing(
base::nullopt,
"Scheduler.TaskPriority",
main_thread_scheduler_impl,
&main_thread_scheduler_impl->tracing_controller_,
OptionalTaskPriorityToString),
virtual_time_policy(VirtualTimePolicy::kAdvance),
virtual_time_pause_count(0),
max_virtual_time_task_starvation_count(0),
......@@ -2426,6 +2439,11 @@ void MainThreadSchedulerImpl::OnTaskStarted(MainThreadTaskQueue* queue,
queue
? base::Optional<MainThreadTaskQueue::QueueType>(queue->queue_type())
: base::nullopt};
main_thread_only().task_priority_for_tracing =
queue
? base::Optional<TaskQueue::QueuePriority>(queue->GetQueuePriority())
: base::nullopt;
}
void MainThreadSchedulerImpl::OnTaskCompleted(
......@@ -2445,6 +2463,9 @@ void MainThreadSchedulerImpl::OnTaskCompleted(
thread_time);
main_thread_only().task_description_for_tracing = base::nullopt;
// Unset the state of |task_priority_for_tracing|.
main_thread_only().task_priority_for_tracing = base::nullopt;
RecordTaskUkm(queue, task, start, end, thread_time);
}
......
......@@ -19,6 +19,7 @@
#include "build/build_config.h"
#include "third_party/blink/public/platform/scheduler/web_main_thread_scheduler.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_queue.h"
#include "third_party/blink/renderer/platform/scheduler/base/task_time_observer.h"
#include "third_party/blink/renderer/platform/scheduler/child/idle_canceled_delayed_task_sweeper.h"
#include "third_party/blink/renderer/platform/scheduler/child/idle_helper.h"
......@@ -723,6 +724,10 @@ class PLATFORM_EXPORT MainThreadSchedulerImpl
TraceableState<base::Optional<TaskDescriptionForTracing>,
kTracingCategoryNameInfo>
task_description_for_tracing; // Don't use except for tracing.
TraceableState<
base::Optional<base::sequence_manager::TaskQueue::QueuePriority>,
kTracingCategoryNameInfo>
task_priority_for_tracing; // Only used for tracing.
base::ObserverList<VirtualTimeObserver> virtual_time_observers;
base::Time initial_virtual_time;
base::TimeTicks initial_virtual_time_ticks;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment