Comments (13)
The perf.data file is not parsed by the converter as the file contains the PERF_SAMPLE_REGS_USER and PERF_SAMPLE_STACK_USER perf sample types, which are not currently supported by quipper. We will address this error. Will update the issue once it is fixed.
FYI, the dwarf
option to the --call-graph flag introduces the PERF_SAMPLE_REGS_USER and PERF_SAMPLE_STACK_USER sample types in the perf.data file. But the --call-graph flag options fp
and lbr
don't introduce these sample types in the perf.data file.
from perf_data_converter.
I'd like to ping this; more and more systems are compiling sans frame pointers (I disagree with that decision but I don't always get to make it.) Dwarf backtrace support would be of exceptional value.
from perf_data_converter.
@romange Can you attach an example perf.data file?
from perf_data_converter.
@aalexand Of course. Attached https://drive.google.com/file/d/1BeMmVjzDALt4jvdc8JtgEYFB9N5kHSDn/view?usp=sharing
from perf_data_converter.
@lannadorai PTAL
from perf_data_converter.
@lannadorai, should we change the error message in quipper to mention -g dwarf as the likely possible reason?
from perf_data_converter.
@aalexand The error message change would be welcomed; it's possible to work it out if you know perf but not obvious.
Is there any ETA for supporting these sample types (and better yet --call-graph dwarf stacktracing?)
from perf_data_converter.
@ahh No ETA.
from perf_data_converter.
Unlikely we'll work on this soon, but I can review a patch if someone wants to put it together. The support should be off by default to keep the current behavior unchanged.
from perf_data_converter.
from perf_data_converter.
The stack and the register data are potentially PII tainted, we have uses where I'd prefer to keep the current behavior.
from perf_data_converter.
I'm seeing something similar to this, I believe, but I'm unsure how to correct it. It looks like the issue is from PERF_RECORD_TIME_CONV
; do you have any docs on which options need to be passed to perf
to be compatible with this tool?
$ go tool pprof -web perf.data
Converting perf.data to a profile.proto... (May take a few minutes)
[WARNING:src/quipper/perf_reader.cc:1247] Skipping 104 bytes of metadata: HEADER_CPU_TOPOLOGY
[ERROR:src/quipper/perf_data_utils.cc:484] Non-zero remaining event size 24 received for event PERF_RECORD_TIME_CONV with no varaible payload event data or sample info data
[ERROR:src/quipper/perf_reader.cc:1095] Couldn't get variable payload size for event PERF_RECORD_TIME_CONV
[ERROR:src/quipper/perf_reader.cc:1023] Couldn't read event PERF_RECORD_TIME_CONV
[ERROR:src/perf_data_converter.cc:703] Could not read input perf.data
[FATAL:src/perf_to_profile.cc:33] Expected profile vector to have one element.
perf.data: failed to convert perf.data file. Try github.com/google/perf_data_converter: exit status 1
failed to fetch any source profiles
from perf_data_converter.
PERF_RECORD_TIME_CONV
looks like a separate issue, let's not mix it into this one. This bug is about PERF_SAMPLE_REGS_USER
and PERF_SAMPLE_STACK_USER
which are present in the perf.data file when --call-graph=dwarf
is used. This is a dupe of #105. To copy my note from there:
At Google we do not use collection modes that can result in user mode register values to be recorded in the perf.data file. Hence the priority for us to work on this issue is low and we don't anticipate addressing or triaging it further soon.
So I'm closing this bug.
from perf_data_converter.
Related Issues (20)
- ERROR: Analysis of target '//src:perf_to_profile' failed; build aborted: error loading package '@com_google_protobuf//': Unable to find package for @rules_java//java:defs.bzl: The repository '@rules_java' could not be resolved. HOT 4
- Build fails with 404 errors because bazel doesn't follow redirects HOT 4
- Could we get a command-line option for setting `kPidAndTidLabels`? HOT 1
- "PERF_SAMPLE_REGS_USER is not yet supported" fatal error on perf.data recorded with `--call-graph dwarf` HOT 3
- Build broken due to bad dependencies import HOT 1
- fips_break_test.h: No such file or directory HOT 2
- perf_to_profile fails with large (18gb) perf data HOT 3
- build error in centos
- failed to compile in linux environment HOT 6
- should kernel addr-- ? HOT 1
- perf_to_profile crashes on a 3GB perf.data file HOT 3
- Memory corruption when parsing malformed perf data files HOT 1
- build error using bazel HOT 3
- branch stack reader needs updating for new information HOT 4
- Cannot extract function name from perf.data HOT 1
- perf_to_profile drops perf symbols HOT 2
- Compiler warnings when building perf_data_converter HOT 1
- build failed with bazel 4.0, Arch Linux HOT 3
- Build failing "fips.c: No such file or directory" since 15.03.2021 (boringssl) HOT 3
- Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from perf_data_converter.