diff options
author | Ali Ijaz Sheikh <ofrobots@google.com> | 2016-03-01 08:58:05 -0800 |
---|---|---|
committer | Ali Sheikh <ofrobots@lemonhope.roam.corp.google.com> | 2016-03-03 20:35:20 -0800 |
commit | 069e02ab47656b3efd1b6829c65856b2e1c2d1db (patch) | |
tree | eb643e0a2e88fd64bb9fc927423458d2ae96c2db /deps/v8/tools/ll_prof.py | |
parent | 8938355398c79f583a468284b768652d12ba9bc9 (diff) | |
download | node-new-069e02ab47656b3efd1b6829c65856b2e1c2d1db.tar.gz |
deps: upgrade to V8 4.9.385.18
Pick up the current branch head for V8 4.9
https://github.com/v8/v8/commit/1ecba0f
PR-URL: https://github.com/nodejs/node/pull/4722
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaƫl Zasso <mic.besace@gmail.com>
Diffstat (limited to 'deps/v8/tools/ll_prof.py')
-rwxr-xr-x | deps/v8/tools/ll_prof.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/deps/v8/tools/ll_prof.py b/deps/v8/tools/ll_prof.py index f9bea4a61f..7dac2e05eb 100755 --- a/deps/v8/tools/ll_prof.py +++ b/deps/v8/tools/ll_prof.py @@ -568,7 +568,7 @@ PERF_EVENT_HEADER_DESC = Descriptor([ ]) -# Reference: kernel/events/core.c +# Reference: kernel/tools/perf/util/event.h PERF_MMAP_EVENT_BODY_DESC = Descriptor([ ("pid", "u32"), ("tid", "u32"), @@ -577,6 +577,20 @@ PERF_MMAP_EVENT_BODY_DESC = Descriptor([ ("pgoff", "u64") ]) +# Reference: kernel/tools/perf/util/event.h +PERF_MMAP2_EVENT_BODY_DESC = Descriptor([ + ("pid", "u32"), + ("tid", "u32"), + ("addr", "u64"), + ("len", "u64"), + ("pgoff", "u64"), + ("maj", "u32"), + ("min", "u32"), + ("ino", "u64"), + ("ino_generation", "u64"), + ("prot", "u32"), + ("flags","u32") +]) # perf_event_attr.sample_type bits control the set of # perf_sample_event fields. @@ -616,6 +630,7 @@ PERF_SAMPLE_EVENT_IP_FORMAT = "u64" PERF_RECORD_MMAP = 1 +PERF_RECORD_MMAP2 = 10 PERF_RECORD_SAMPLE = 9 @@ -664,6 +679,15 @@ class TraceReader(object): mmap_info.filename = HOST_ROOT + filename[:filename.find(chr(0))] return mmap_info + def ReadMmap2(self, header, offset): + mmap_info = PERF_MMAP2_EVENT_BODY_DESC.Read(self.trace, + offset + self.header_size) + # Read null-terminated filename. + filename = self.trace[offset + self.header_size + ctypes.sizeof(mmap_info): + offset + header.size] + mmap_info.filename = HOST_ROOT + filename[:filename.find(chr(0))] + return mmap_info + def ReadSample(self, header, offset): sample = self.sample_event_body_desc.Read(self.trace, offset + self.header_size) @@ -973,6 +997,14 @@ if __name__ == "__main__": else: library_repo.Load(mmap_info, code_map, options) mmap_time += time.time() - start + elif header.type == PERF_RECORD_MMAP2: + start = time.time() + mmap_info = trace_reader.ReadMmap2(header, offset) + if mmap_info.filename == HOST_ROOT + V8_GC_FAKE_MMAP: + log_reader.ReadUpToGC() + else: + library_repo.Load(mmap_info, code_map, options) + mmap_time += time.time() - start elif header.type == PERF_RECORD_SAMPLE: ticks += 1 start = time.time() |