Home | History | Annotate | Download | only in core

Lines Matching refs:tracing_session

257   TracingSession* tracing_session;
258 if (!tsid || !(tracing_session = GetTracingSession(tsid)))
267 PERFETTO_DCHECK(tracing_session->consumer_maybe_null == consumer);
268 tracing_session->consumer_maybe_null = nullptr;
269 tracing_session->detach_key = key;
289 auto* tracing_session = GetDetachedSession(consumer->uid_, key);
290 if (!tracing_session) {
297 consumer->tracing_session_id_ = tracing_session->id;
298 tracing_session->consumer_maybe_null = consumer;
299 tracing_session->detach_key.clear();
313 TracingSession* tracing_session =
315 if (tracing_session) {
402 tracing_session =
413 tracing_session->write_into_file = std::move(fd);
419 tracing_session->write_period_ms = write_period_ms;
420 tracing_session->max_file_size_bytes = cfg.max_file_size_bytes();
421 tracing_session->bytes_written_into_file = 0;
433 tracing_session->buffers_index.reserve(num_buffers);
441 tracing_session->buffers_index.push_back(global_id);
466 for (BufferID global_id : tracing_session->buffers_index) {
490 tracing_session);
513 // Update the tracing_session's duration_ms to ensure that if no trigger
518 // have a field we look at on the tracing_session.
519 tracing_session->config.set_duration_ms(
524 tracing_session->state = TracingSession::CONFIGURED;
528 cfg.data_sources().size(), tracing_session->config.duration_ms(),
544 TracingSession* tracing_session =
546 PERFETTO_DCHECK(tracing_session);
548 if ((tracing_session->state != TracingSession::STARTED) &&
549 (tracing_session->state != TracingSession::CONFIGURED)) {
564 TraceConfig current_config_copy(tracing_session->config);
576 *tracing_session->config.mutable_data_sources()) {
622 auto& ds_instances = tracing_session->data_source_instances;
639 for (auto& config : tracing_session->config.producers()) {
647 cfg_data_source, producer_config, it->second, tracing_session);
649 if (ds_inst && tracing_session->state == TracingSession::STARTED)
650 StartDataSourceInstance(producer, tracing_session, ds_inst);
657 TracingSession* tracing_session = GetTracingSession(tsid);
658 if (!tracing_session) {
663 if (tracing_session->state != TracingSession::CONFIGURED) {
665 tracing_session->state);
669 tracing_session->state = TracingSession::STARTED;
671 if (!tracing_session->config.builtin_data_sources()
673 SnapshotClocks(&tracing_session->initial_clock_snapshot_,
678 const uint32_t trace_duration_ms = tracing_session->config.duration_ms();
705 if (tracing_session->config.write_into_file()) {
712 tracing_session->delay_to_next_write_period_ms());
716 if (tracing_session->config.flush_period_ms())
721 if (tracing_session->config.incremental_state_config().clear_period_ms()) {
725 for (auto& kv : tracing_session->data_source_instances) {
733 StartDataSourceInstance(producer, tracing_session, &data_source);
740 TracingSession* tracing_session,
748 if (tracing_session->consumer_maybe_null) {
749 tracing_session->consumer_maybe_null->OnDataSourceInstanceStateChange(
762 TracingSession* tracing_session = GetTracingSession(tsid);
763 if (!tracing_session) {
770 switch (tracing_session->state) {
773 PERFETTO_DCHECK(tracing_session->AllDataSourceInstancesStopped());
784 PERFETTO_DCHECK(!tracing_session->AllDataSourceInstancesStopped());
786 DisableTracingNotifyConsumerAndFlushFile(tracing_session);
801 for (auto& data_source_inst : tracing_session->data_source_instances) {
815 if (tracing_session->consumer_maybe_null) {
816 tracing_session->consumer_maybe_null->OnDataSourceInstanceStateChange(
826 if (tracing_session->AllDataSourceInstancesStopped())
827 return DisableTracingNotifyConsumerAndFlushFile(tracing_session);
829 tracing_session->state = TracingSession::DISABLING_WAITING_STOP_ACKS;
850 TracingSession& tracing_session = kv.second;
852 tracing_session
866 if (tracing_session.consumer_maybe_null) {
867 tracing_session.consumer_maybe_null->OnDataSourceInstanceStateChange(
870 } // for (tracing_session)
878 TracingSession& tracing_session = kv.second;
880 tracing_session.GetDataSourceInstance(producer_id, instance_id);
889 PERFETTO_DCHECK(tracing_session.state ==
896 if (tracing_session.consumer_maybe_null) {
897 tracing_session.consumer_maybe_null->OnDataSourceInstanceStateChange(
901 if (!tracing_session.AllDataSourceInstancesStopped())
905 DisableTracingNotifyConsumerAndFlushFile(&tracing_session);
906 } // for (tracing_session)
917 auto& tracing_session = id_and_tracing_session.second;
920 tracing_session.config.trigger_config().triggers().begin(),
921 tracing_session.config.trigger_config().triggers().end(),
925 if (iter == tracing_session.config.trigger_config().triggers().end()) {
939 !tracing_session.received_triggers.empty();
940 tracing_session.received_triggers.push_back(
944 switch (tracing_session.config.trigger_config().trigger_mode()) {
950 if (tracing_session.state != TracingSession::CONFIGURED)
959 tracing_session.config.set_duration_ms(iter->stop_delay_ms());
1000 TracingSession* tracing_session = GetTracingSession(tsid);
1001 if (!tracing_session ||
1002 tracing_session->state != TracingSession::DISABLING_WAITING_STOP_ACKS) {
1008 PERFETTO_DCHECK(!tracing_session->AllDataSourceInstancesStopped());
1009 DisableTracingNotifyConsumerAndFlushFile(tracing_session);
1013 TracingSession* tracing_session) {
1014 PERFETTO_DCHECK(tracing_session->state != TracingSession::DISABLED);
1015 for (auto& inst_kv : tracing_session->data_source_instances) {
1021 if (tracing_session->consumer_maybe_null) {
1022 tracing_session->consumer_maybe_null->OnDataSourceInstanceStateChange(
1026 tracing_session->state = TracingSession::DISABLED;
1030 ScrapeSharedMemoryBuffers(tracing_session, producer_id_and_producer.second);
1032 if (tracing_session->write_into_file) {
1033 tracing_session->write_period_ms = 0;
1034 ReadBuffers(tracing_session->id, nullptr);
1037 if (tracing_session->consumer_maybe_null)
1038 tracing_session->consumer_maybe_null->NotifyOnTracingDisabled();
1045 TracingSession* tracing_session = GetTracingSession(tsid);
1046 if (!tracing_session) {
1052 timeout_ms = tracing_session->flush_timeout_ms();
1054 if (tracing_session->pending_flushes.size() > 1000) {
1056 tracing_session->pending_flushes.size());
1063 tracing_session->pending_flushes
1064 .emplace_hint(tracing_session->pending_flushes.end(),
1072 for (const auto& data_source_inst : tracing_session->data_source_instances) {
1125 } // for (tracing_session)
1130 TracingSession* tracing_session = GetTracingSession(tsid);
1131 if (!tracing_session)
1133 auto it = tracing_session->pending_flushes.find(flush_request_id);
1134 if (it == tracing_session->pending_flushes.end())
1141 tracing_session->pending_flushes.erase(it);
1148 TracingSession* tracing_session = GetTracingSession(tsid);
1149 if (tracing_session) {
1154 ScrapeSharedMemoryBuffers(tracing_session,
1162 TracingSession* tracing_session,
1176 const auto& session_buffers = tracing_session->buffers_index;
1305 TracingSession* tracing_session = GetTracingSession(tsid);
1306 if (!tracing_session || tracing_session->state != TracingSession::STARTED)
1309 uint32_t flush_period_ms = tracing_session->config.flush_period_ms();
1332 TracingSession* tracing_session = GetTracingSession(tsid);
1333 if (!tracing_session || tracing_session->state != TracingSession::STARTED)
1337 tracing_session->config.incremental_state_config().clear_period_ms();
1356 for (const auto& kv : tracing_session->data_source_instances) {
1381 TracingSession* tracing_session = GetTracingSession(tsid);
1382 if (!tracing_session) {
1396 if (!tracing_session->config.trigger_config().triggers().empty() &&
1397 tracing_session->received_triggers.empty()) {
1407 if (!tracing_session->write_into_file && !consumer)
1410 if (tracing_session->write_into_file && consumer) {
1421 std::move(tracing_session->initial_clock_snapshot_.begin(),
1422 tracing_session->initial_clock_snapshot_.end(),
1424 tracing_session->initial_clock_snapshot_.clear();
1427 if (now >= tracing_session->last_snapshot_time + kSnapshotsInterval) {
1428 tracing_session->last_snapshot_time = now;
1430 SnapshotStats(tracing_session, &packets);
1432 if (!tracing_session->config.builtin_data_sources()
1440 if (!tracing_session->config.builtin_data_sources().disable_trace_config()) {
1441 MaybeEmitTraceConfig(tracing_session, &packets);
1442 MaybeEmitReceivedTriggers(tracing_session, &packets);
1444 if (!tracing_session->config.builtin_data_sources().disable_system_info())
1445 MaybeEmitSystemInfo(tracing_session, &packets);
1473 buf_idx < tracing_session->num_buffers() && !did_hit_threshold;
1475 auto tbuf_iter = buffers_.find(tracing_session->buffers_index[buf_idx]);
1511 tracing_session->GetPacketSequenceID(
1528 !tracing_session->write_into_file;
1536 if (tracing_session->write_into_file) {
1537 const uint64_t max_size = tracing_session->max_file_size_bytes
1538 ? tracing_session->max_file_size_bytes
1547 bool stop_writing_into_file = tracing_session->write_period_ms == 0;
1565 if (tracing_session->bytes_written_into_file +
1576 int fd = *tracing_session->write_into_file;
1593 tracing_session->bytes_written_into_file += total_wr_size;
1600 tracing_session->write_into_file.reset();
1601 tracing_session->write_period_ms = 0;
1602 if (tracing_session->state == TracingSession::STARTED)
1613 tracing_session->delay_to_next_write_period_ms());
1615 } // if (tracing_session->write_into_file)
1635 TracingSession* tracing_session = GetTracingSession(tsid);
1636 if (!tracing_session) {
1642 PERFETTO_DCHECK(tracing_session->AllDataSourceInstancesStopped());
1643 tracing_session->data_source_instances.clear();
1647 producer->OnFreeBuffers(tracing_session->buffers_index);
1650 for (BufferID buffer_id : tracing_session->buffers_index) {
1655 bool notify_traceur = tracing_session->config.notify_traceur();
1693 TracingSession& tracing_session = iter.second;
1694 if (tracing_session.state != TracingSession::STARTED &&
1695 tracing_session.state != TracingSession::CONFIGURED) {
1700 for (auto& config : tracing_session.config.producers()) {
1707 tracing_session.config.data_sources()) {
1711 cfg_data_source, producer_config, reg_ds->second, &tracing_session);
1712 if (ds_inst && tracing_session.state == TracingSession::STARTED)
1713 StartDataSourceInstance(producer, &tracing_session, ds_inst);
1742 } // for (tracing_session)
1762 TracingSession* tracing_session) {
1789 if (relative_buffer_id >= tracing_session->num_buffers()) {
1805 auto insert_iter = tracing_session->data_source_instances.emplace(
1818 if (tracing_session->consumer_maybe_null) {
1819 tracing_session->consumer_maybe_null->OnDataSourceInstanceStateChange(
1824 ds_config.set_trace_duration_ms(tracing_session->config.duration_ms());
1826 tracing_session->config.enable_extra_guardrails());
1827 ds_config.set_tracing_session_id(tracing_session->id);
1828 BufferID global_id = tracing_session->buffers_index[relative_buffer_id];
2167 void TracingServiceImpl::SnapshotStats(TracingSession* tracing_session,
2174 GetTraceStats(tracing_session).ToProto(trace_stats);
2181 TraceStats TracingServiceImpl::GetTraceStats(TracingSession* tracing_session) {
2194 for (BufferID buf_id : tracing_session->buffers_index) {
2206 TracingSession* tracing_session,
2208 if (tracing_session->did_emit_config)
2210 tracing_session->did_emit_config = true;
2212 tracing_session->config.ToProto(packet.mutable_trace_config());
2222 TracingSession* tracing_session,
2224 if (tracing_session->did_emit_system_info)
2226 tracing_session->did_emit_system_info = true;
2248 TracingSession* tracing_session,
2250 PERFETTO_DCHECK(tracing_session->num_triggers_emitted_into_trace <=
2251 tracing_session->received_triggers.size());
2252 for (size_t i = tracing_session->num_triggers_emitted_into_trace;
2253 i < tracing_session->received_triggers.size(); ++i) {
2254 const auto& info = tracing_session->received_triggers[i];
2269 ++tracing_session->num_triggers_emitted_into_trace;