Commit 7ddb0d6b authored by Mohit Saini's avatar Mohit Saini Committed by V8 LUCI CQ

Reland "Refactor dynamic name to perfetto::DynamicString"

This is a reland of commit c801d529

perfetto::DynamicString was supported in perfetto very recently.
This CL failed earlier because latest perfetto was not rolled in
v8. Relanding it after rolling the latest perfetto in v8 (see
parent CL).

Original change's description:
> Refactor dynamic name to perfetto::DynamicString
>
> Recently perfetto introduced `perfetto::DynamicString` to allow clients
> to wrap dynamic event name strings. So that clients don't have to
> manually set event name inside trace lambda.
>
> With that:
>
> TRACE_EVENT("cat", nullptr, [&](EventContext ctx) {
>   ctx.event().set_name(dynamic_name_str)
> });
>
> is simplified to:
>
> TRACE_EVENT("cat", perfetto::DynamicString{dynamic_name_str});
>
> In this change we are making use of perfetto::DynamicString to pass
> dynamic event name string.
>
> Change-Id: Ic6b501df67409d6faa4d60b59095ad0e79ce585e
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3716473
> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org>
> Commit-Queue: Mohit Saini <mohitms@google.com>
> Cr-Commit-Position: refs/heads/main@{#81298}

Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
Change-Id: I70103606f397cd420a5dfccba703bee8962f822b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714946
Commit-Queue: Mohit Saini <mohitms@google.com>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Auto-Submit: Mohit Saini <mohitms@google.com>
Cr-Commit-Position: refs/heads/main@{#81420}
parent 5ef3bb9b
......@@ -196,11 +196,8 @@ BUILTIN(Trace) {
}
#if defined(V8_USE_PERFETTO)
// TODO(skyostil): Use interned names to reduce trace size.
auto trace_args = [&](perfetto::EventContext ctx) {
// TODO(skyostil): Use interned names to reduce trace size.
if (phase != TRACE_EVENT_PHASE_END) {
ctx.event()->set_name(*name);
}
if (num_args) {
MaybeUtf8 arg_contents(isolate, Handle<String>::cast(arg_json));
auto annotation = ctx.event()->add_debug_annotations();
......@@ -215,13 +212,15 @@ BUILTIN(Trace) {
switch (phase) {
case TRACE_EVENT_PHASE_BEGIN:
TRACE_EVENT_BEGIN(dynamic_category, nullptr, trace_args);
TRACE_EVENT_BEGIN(dynamic_category, perfetto::DynamicString(*name),
trace_args);
break;
case TRACE_EVENT_PHASE_END:
TRACE_EVENT_END(dynamic_category, trace_args);
break;
case TRACE_EVENT_PHASE_INSTANT:
TRACE_EVENT_INSTANT(dynamic_category, nullptr, trace_args);
TRACE_EVENT_INSTANT(dynamic_category, perfetto::DynamicString(*name),
trace_args);
break;
default:
THROW_NEW_ERROR_RETURN_FAILURE(
......
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