Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: base/trace_event/trace_log.cc

Issue 1717283003: tracing: Make ConvertableToTraceFormat move-only scoped_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/trace_event/trace_log.h" 5 #include "base/trace_event/trace_log.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 TraceEventHandle TraceLog::AddTraceEvent( 1028 TraceEventHandle TraceLog::AddTraceEvent(
1029 char phase, 1029 char phase,
1030 const unsigned char* category_group_enabled, 1030 const unsigned char* category_group_enabled,
1031 const char* name, 1031 const char* name,
1032 const char* scope, 1032 const char* scope,
1033 unsigned long long id, 1033 unsigned long long id,
1034 int num_args, 1034 int num_args,
1035 const char** arg_names, 1035 const char** arg_names,
1036 const unsigned char* arg_types, 1036 const unsigned char* arg_types,
1037 const unsigned long long* arg_values, 1037 const unsigned long long* arg_values,
1038 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 1038 scoped_ptr<ConvertableToTraceFormat>* convertable_values,
1039 unsigned int flags) { 1039 unsigned int flags) {
1040 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); 1040 int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
1041 base::TimeTicks now = base::TimeTicks::Now(); 1041 base::TimeTicks now = base::TimeTicks::Now();
1042 return AddTraceEventWithThreadIdAndTimestamp( 1042 return AddTraceEventWithThreadIdAndTimestamp(
1043 phase, 1043 phase,
1044 category_group_enabled, 1044 category_group_enabled,
1045 name, 1045 name,
1046 scope, 1046 scope,
1047 id, 1047 id,
1048 trace_event_internal::kNoId, // bind_id 1048 trace_event_internal::kNoId, // bind_id
(...skipping 11 matching lines...) Expand all
1060 char phase, 1060 char phase,
1061 const unsigned char* category_group_enabled, 1061 const unsigned char* category_group_enabled,
1062 const char* name, 1062 const char* name,
1063 const char* scope, 1063 const char* scope,
1064 unsigned long long id, 1064 unsigned long long id,
1065 unsigned long long bind_id, 1065 unsigned long long bind_id,
1066 int num_args, 1066 int num_args,
1067 const char** arg_names, 1067 const char** arg_names,
1068 const unsigned char* arg_types, 1068 const unsigned char* arg_types,
1069 const unsigned long long* arg_values, 1069 const unsigned long long* arg_values,
1070 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 1070 scoped_ptr<ConvertableToTraceFormat>* convertable_values,
1071 unsigned int flags) { 1071 unsigned int flags) {
1072 int thread_id = static_cast<int>(base::PlatformThread::CurrentId()); 1072 int thread_id = static_cast<int>(base::PlatformThread::CurrentId());
1073 base::TimeTicks now = base::TimeTicks::Now(); 1073 base::TimeTicks now = base::TimeTicks::Now();
1074 return AddTraceEventWithThreadIdAndTimestamp( 1074 return AddTraceEventWithThreadIdAndTimestamp(
1075 phase, 1075 phase,
1076 category_group_enabled, 1076 category_group_enabled,
1077 name, 1077 name,
1078 scope, 1078 scope,
1079 id, 1079 id,
1080 bind_id, 1080 bind_id,
(...skipping 11 matching lines...) Expand all
1092 char phase, 1092 char phase,
1093 const unsigned char* category_group_enabled, 1093 const unsigned char* category_group_enabled,
1094 const char* name, 1094 const char* name,
1095 const char* scope, 1095 const char* scope,
1096 unsigned long long id, 1096 unsigned long long id,
1097 int process_id, 1097 int process_id,
1098 int num_args, 1098 int num_args,
1099 const char** arg_names, 1099 const char** arg_names,
1100 const unsigned char* arg_types, 1100 const unsigned char* arg_types,
1101 const unsigned long long* arg_values, 1101 const unsigned long long* arg_values,
1102 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 1102 scoped_ptr<ConvertableToTraceFormat>* convertable_values,
1103 unsigned int flags) { 1103 unsigned int flags) {
1104 base::TimeTicks now = base::TimeTicks::Now(); 1104 base::TimeTicks now = base::TimeTicks::Now();
1105 return AddTraceEventWithThreadIdAndTimestamp( 1105 return AddTraceEventWithThreadIdAndTimestamp(
1106 phase, 1106 phase,
1107 category_group_enabled, 1107 category_group_enabled,
1108 name, 1108 name,
1109 scope, 1109 scope,
1110 id, 1110 id,
1111 trace_event_internal::kNoId, // bind_id 1111 trace_event_internal::kNoId, // bind_id
1112 process_id, 1112 process_id,
(...skipping 13 matching lines...) Expand all
1126 const unsigned char* category_group_enabled, 1126 const unsigned char* category_group_enabled,
1127 const char* name, 1127 const char* name,
1128 const char* scope, 1128 const char* scope,
1129 unsigned long long id, 1129 unsigned long long id,
1130 int thread_id, 1130 int thread_id,
1131 const TimeTicks& timestamp, 1131 const TimeTicks& timestamp,
1132 int num_args, 1132 int num_args,
1133 const char** arg_names, 1133 const char** arg_names,
1134 const unsigned char* arg_types, 1134 const unsigned char* arg_types,
1135 const unsigned long long* arg_values, 1135 const unsigned long long* arg_values,
1136 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 1136 scoped_ptr<ConvertableToTraceFormat>* convertable_values,
1137 unsigned int flags) { 1137 unsigned int flags) {
1138 return AddTraceEventWithThreadIdAndTimestamp( 1138 return AddTraceEventWithThreadIdAndTimestamp(
1139 phase, 1139 phase,
1140 category_group_enabled, 1140 category_group_enabled,
1141 name, 1141 name,
1142 scope, 1142 scope,
1143 id, 1143 id,
1144 trace_event_internal::kNoId, // bind_id 1144 trace_event_internal::kNoId, // bind_id
1145 thread_id, 1145 thread_id,
1146 timestamp, 1146 timestamp,
(...skipping 11 matching lines...) Expand all
1158 const char* name, 1158 const char* name,
1159 const char* scope, 1159 const char* scope,
1160 unsigned long long id, 1160 unsigned long long id,
1161 unsigned long long bind_id, 1161 unsigned long long bind_id,
1162 int thread_id, 1162 int thread_id,
1163 const TimeTicks& timestamp, 1163 const TimeTicks& timestamp,
1164 int num_args, 1164 int num_args,
1165 const char** arg_names, 1165 const char** arg_names,
1166 const unsigned char* arg_types, 1166 const unsigned char* arg_types,
1167 const unsigned long long* arg_values, 1167 const unsigned long long* arg_values,
1168 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 1168 scoped_ptr<ConvertableToTraceFormat>* convertable_values,
1169 unsigned int flags) { 1169 unsigned int flags) {
1170 TraceEventHandle handle = {0, 0, 0}; 1170 TraceEventHandle handle = {0, 0, 0};
1171 if (!*category_group_enabled) 1171 if (!*category_group_enabled)
1172 return handle; 1172 return handle;
1173 1173
1174 // Avoid re-entrance of AddTraceEvent. This may happen in GPU process when 1174 // Avoid re-entrance of AddTraceEvent. This may happen in GPU process when
1175 // ECHO_TO_CONSOLE is enabled: AddTraceEvent -> LOG(ERROR) -> 1175 // ECHO_TO_CONSOLE is enabled: AddTraceEvent -> LOG(ERROR) ->
1176 // GpuProcessLogMessageHandler -> PostPendingTask -> TRACE_EVENT ... 1176 // GpuProcessLogMessageHandler -> PostPendingTask -> TRACE_EVENT ...
1177 if (thread_is_in_trace_event_.Get()) 1177 if (thread_is_in_trace_event_.Get())
1178 return handle; 1178 return handle;
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1329 1329
1330 return handle; 1330 return handle;
1331 } 1331 }
1332 1332
1333 void TraceLog::AddMetadataEvent( 1333 void TraceLog::AddMetadataEvent(
1334 const char* name, 1334 const char* name,
1335 int num_args, 1335 int num_args,
1336 const char** arg_names, 1336 const char** arg_names,
1337 const unsigned char* arg_types, 1337 const unsigned char* arg_types,
1338 const unsigned long long* arg_values, 1338 const unsigned long long* arg_values,
1339 const scoped_refptr<ConvertableToTraceFormat>* convertable_values, 1339 scoped_ptr<ConvertableToTraceFormat>* convertable_values,
1340 unsigned int flags) { 1340 unsigned int flags) {
1341 scoped_ptr<TraceEvent> trace_event(new TraceEvent); 1341 scoped_ptr<TraceEvent> trace_event(new TraceEvent);
1342 AutoLock lock(lock_); 1342 AutoLock lock(lock_);
1343 trace_event->Initialize( 1343 trace_event->Initialize(
1344 0, // thread_id 1344 0, // thread_id
1345 TimeTicks(), ThreadTicks(), TRACE_EVENT_PHASE_METADATA, 1345 TimeTicks(), ThreadTicks(), TRACE_EVENT_PHASE_METADATA,
1346 &g_category_group_enabled[g_category_metadata], name, 1346 &g_category_group_enabled[g_category_metadata], name,
1347 trace_event_internal::kGlobalScope, // scope 1347 trace_event_internal::kGlobalScope, // scope
1348 trace_event_internal::kNoId, // id 1348 trace_event_internal::kNoId, // id
1349 trace_event_internal::kNoId, // bind_id 1349 trace_event_internal::kNoId, // bind_id
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1482 watch_event_callback_.Reset(); 1482 watch_event_callback_.Reset();
1483 } 1483 }
1484 1484
1485 uint64_t TraceLog::MangleEventId(uint64_t id) { 1485 uint64_t TraceLog::MangleEventId(uint64_t id) {
1486 return id ^ process_id_hash_; 1486 return id ^ process_id_hash_;
1487 } 1487 }
1488 1488
1489 void TraceLog::AddMetadataEventsWhileLocked() { 1489 void TraceLog::AddMetadataEventsWhileLocked() {
1490 lock_.AssertAcquired(); 1490 lock_.AssertAcquired();
1491 1491
1492 // Copy metadata added by |AddMetadataEvent| into the trace log. 1492 // Move metadata added by |AddMetadataEvent| into the trace log.
1493 for (const scoped_ptr<TraceEvent>& event : metadata_events_) 1493 while (!metadata_events_.empty()) {
1494 AddEventToThreadSharedChunkWhileLocked(nullptr, false)->CopyFrom(*event); 1494 TraceEvent* event = AddEventToThreadSharedChunkWhileLocked(nullptr, false);
1495 event->MoveFrom(std::move(metadata_events_.back()));
1496 metadata_events_.pop_back();
1497 }
1495 1498
1496 #if !defined(OS_NACL) // NaCl shouldn't expose the process id. 1499 #if !defined(OS_NACL) // NaCl shouldn't expose the process id.
1497 InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(NULL, false), 1500 InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(NULL, false),
1498 0, "num_cpus", "number", 1501 0, "num_cpus", "number",
1499 base::SysInfo::NumberOfProcessors()); 1502 base::SysInfo::NumberOfProcessors());
1500 #endif 1503 #endif
1501 1504
1502 int current_thread_id = static_cast<int>(base::PlatformThread::CurrentId()); 1505 int current_thread_id = static_cast<int>(base::PlatformThread::CurrentId());
1503 if (process_sort_index_ != 0) { 1506 if (process_sort_index_ != 0) {
1504 InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(NULL, false), 1507 InitializeMetadataEvent(AddEventToThreadSharedChunkWhileLocked(NULL, false),
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
1727 } 1730 }
1728 1731
1729 ScopedTraceBinaryEfficient::~ScopedTraceBinaryEfficient() { 1732 ScopedTraceBinaryEfficient::~ScopedTraceBinaryEfficient() {
1730 if (*category_group_enabled_) { 1733 if (*category_group_enabled_) {
1731 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_, name_, 1734 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_, name_,
1732 event_handle_); 1735 event_handle_);
1733 } 1736 }
1734 } 1737 }
1735 1738
1736 } // namespace trace_event_internal 1739 } // namespace trace_event_internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698