Index: runtime/vm/profiler.h |
diff --git a/runtime/vm/profiler.h b/runtime/vm/profiler.h |
index 9f967cf9bea02ca0b3b176a14616582e3f6a1d75..ee87a31d954051b61af6a7a822b7f2bb78da23eb 100644 |
--- a/runtime/vm/profiler.h |
+++ b/runtime/vm/profiler.h |
@@ -41,8 +41,6 @@ struct ProfilerCounters { |
int64_t stack_walker_dart_exit; |
int64_t stack_walker_dart; |
int64_t stack_walker_none; |
- // Count of failed checks: |
- int64_t failure_native_allocation_sample; |
}; |
@@ -60,7 +58,6 @@ class Profiler : public AllStatic { |
static void DumpStackTrace(); |
static void SampleAllocation(Thread* thread, intptr_t cid); |
- static Sample* SampleNativeAllocation(intptr_t skip_count); |
// SampleThread is called from inside the signal handler and hence it is very |
// critical that the implementation of SampleThread does not do any of the |
@@ -94,7 +91,7 @@ class Profiler : public AllStatic { |
class SampleVisitor : public ValueObject { |
public: |
- explicit SampleVisitor(Dart_Port port) : port_(port), visited_(0) {} |
+ explicit SampleVisitor(Isolate* isolate) : isolate_(isolate), visited_(0) {} |
virtual ~SampleVisitor() {} |
virtual void VisitSample(Sample* sample) = 0; |
@@ -103,10 +100,10 @@ class SampleVisitor : public ValueObject { |
void IncrementVisited() { visited_++; } |
- Dart_Port port() const { return port_; } |
+ Isolate* isolate() const { return isolate_; } |
private: |
- Dart_Port port_; |
+ Isolate* isolate_; |
intptr_t visited_; |
DISALLOW_IMPLICIT_CONSTRUCTORS(SampleVisitor); |
@@ -115,11 +112,11 @@ class SampleVisitor : public ValueObject { |
class SampleFilter : public ValueObject { |
public: |
- SampleFilter(Dart_Port port, |
+ SampleFilter(Isolate* isolate, |
intptr_t thread_task_mask, |
int64_t time_origin_micros, |
int64_t time_extent_micros) |
- : port_(port), |
+ : isolate_(isolate), |
thread_task_mask_(thread_task_mask), |
time_origin_micros_(time_origin_micros), |
time_extent_micros_(time_extent_micros) { |
@@ -133,7 +130,7 @@ class SampleFilter : public ValueObject { |
// Return |true| if |sample| passes the filter. |
virtual bool FilterSample(Sample* sample) { return true; } |
- Dart_Port port() const { return port_; } |
+ Isolate* isolate() const { return isolate_; } |
// Returns |true| if |sample| passes the time filter. |
bool TimeFilterSample(Sample* sample); |
@@ -142,7 +139,7 @@ class SampleFilter : public ValueObject { |
bool TaskFilterSample(Sample* sample); |
private: |
- Dart_Port port_; |
+ Isolate* isolate_; |
intptr_t thread_task_mask_; |
int64_t time_origin_micros_; |
int64_t time_extent_micros_; |
@@ -160,20 +157,21 @@ class ClearProfileVisitor : public SampleVisitor { |
// Each Sample holds a stack trace from an isolate. |
class Sample { |
public: |
- void Init(Dart_Port port, int64_t timestamp, ThreadId tid) { |
+ void Init(Isolate* isolate, int64_t timestamp, ThreadId tid) { |
Clear(); |
timestamp_ = timestamp; |
tid_ = tid; |
- port_ = port; |
+ isolate_ = isolate; |
} |
- Dart_Port port() const { return port_; } |
+ // Isolate sample was taken from. |
+ Isolate* isolate() const { return isolate_; } |
// Thread sample was taken on. |
ThreadId tid() const { return tid_; } |
void Clear() { |
- port_ = ILLEGAL_PORT; |
+ isolate_ = NULL; |
pc_marker_ = 0; |
for (intptr_t i = 0; i < kStackBufferSizeInWords; i++) { |
stack_buffer_[i] = 0; |
@@ -270,15 +268,6 @@ class Sample { |
state_ = ClassAllocationSampleBit::update(allocation_sample, state_); |
} |
- bool is_native_allocation_sample() const { |
- return NativeAllocationSampleBit::decode(state_); |
- } |
- |
- void set_is_native_allocation_sample(bool native_allocation_sample) { |
- state_ = |
- NativeAllocationSampleBit::update(native_allocation_sample, state_); |
- } |
- |
Thread::TaskKind thread_task() const { return ThreadTaskBit::decode(state_); } |
void set_thread_task(Thread::TaskKind task) { |
@@ -342,8 +331,7 @@ class Sample { |
kClassAllocationSampleBit = 6, |
kContinuationSampleBit = 7, |
kThreadTaskBit = 8, // 5 bits. |
- kNativeAllocationSampleBit = 13, |
- kNextFreeBit = 14, |
+ kNextFreeBit = 13, |
}; |
class HeadSampleBit : public BitField<uword, bool, kHeadSampleBit, 1> {}; |
class LeafFrameIsDart : public BitField<uword, bool, kLeafFrameIsDartBit, 1> { |
@@ -360,12 +348,10 @@ class Sample { |
: public BitField<uword, bool, kContinuationSampleBit, 1> {}; |
class ThreadTaskBit |
: public BitField<uword, Thread::TaskKind, kThreadTaskBit, 5> {}; |
- class NativeAllocationSampleBit |
- : public BitField<uword, bool, kNativeAllocationSampleBit, 1> {}; |
int64_t timestamp_; |
ThreadId tid_; |
- Dart_Port port_; |
+ Isolate* isolate_; |
uword pc_marker_; |
uword stack_buffer_[kStackBufferSizeInWords]; |
uword vm_tag_; |
@@ -488,7 +474,7 @@ class SampleBuffer { |
// Bad sample. |
continue; |
} |
- if (sample->port() != visitor->port()) { |
+ if (sample->isolate() != visitor->isolate()) { |
// Another isolate. |
continue; |
} |