diff options
Diffstat (limited to 'src/profiling/memory/heapprofd_producer.h')
-rw-r--r-- | src/profiling/memory/heapprofd_producer.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/profiling/memory/heapprofd_producer.h b/src/profiling/memory/heapprofd_producer.h index e441507b7..7cf33670e 100644 --- a/src/profiling/memory/heapprofd_producer.h +++ b/src/profiling/memory/heapprofd_producer.h @@ -33,10 +33,11 @@ #include "perfetto/ext/tracing/core/tracing_service.h" #include "perfetto/tracing/core/data_source_config.h" +#include "src/profiling/common/interning_output.h" +#include "src/profiling/common/proc_utils.h" #include "src/profiling/memory/bookkeeping.h" #include "src/profiling/memory/bookkeeping_dump.h" #include "src/profiling/memory/page_idle_checker.h" -#include "src/profiling/memory/proc_utils.h" #include "src/profiling/memory/system_property.h" #include "src/profiling/memory/unwinding.h" @@ -200,10 +201,13 @@ class HeapprofdProducer : public Producer, public UnwindingWorker::Delegate { std::set<pid_t> rejected_pids; std::map<pid_t, ProcessState> process_states; std::vector<std::string> normalized_cmdlines; - DumpState::InternState intern_state; + InterningOutputTracker intern_state; bool shutting_down = false; bool started = false; + bool hit_guardrail = false; + bool was_stopped = false; uint32_t stop_timeout_ms; + base::Optional<uint64_t> start_cputime_sec; }; struct PendingProcess { @@ -220,6 +224,11 @@ class HeapprofdProducer : public Producer, public UnwindingWorker::Delegate { void ResetConnectionBackoff(); void IncreaseConnectionBackoff(); + base::Optional<uint64_t> GetCputimeSec(); + + void CheckDataSourceMemory(); + void CheckDataSourceCpu(); + void FinishDataSourceFlush(FlushRequestID flush_id); bool DumpProcessesInDataSource(DataSourceInstanceID id); void DumpProcessState(DataSource* ds, pid_t pid, ProcessState* process); @@ -243,6 +252,7 @@ class HeapprofdProducer : public Producer, public UnwindingWorker::Delegate { // Specific to mode_ == kChild void AdoptTargetProcessSocket(); + void ShutdownDataSource(DataSource* ds); bool MaybeFinishDataSource(DataSource* ds); // Class state: @@ -284,6 +294,7 @@ class HeapprofdProducer : public Producer, public UnwindingWorker::Delegate { base::ScopedFile inherited_fd_; SocketDelegate socket_delegate_; + base::ScopedFile stat_fd_; base::WeakPtrFactory<HeapprofdProducer> weak_factory_; // Keep last. }; |