Looks like the perf data type is incompatible with quipper (perf data parser). Can you send me the perf.data file so that I can take a look.
Thanks, Dehao On Tue, Oct 21, 2014 at 2:25 PM, Markus Trippelsdorf <mar...@trippelsdorf.de> wrote: > On 2014.10.21 at 13:53 -0700, Dehao Chen wrote: >> Everything will be the same on non-intel CPUs except for the perf command: >> >> perf record -e instructions -- your program. >> >> i.e. you need to drop "-b" and use instructions as event. >> >> Note that the current algorithm is tuned for accurate instruction >> level profile, which is not available on non-Intel CPU. But you are >> more than welcome to tune the propagation algorithm to get most out of >> inaccurate instruction profile. > > Thanks. > But unfortunately it doesn't work: > > markus@x4 autofdo % g++ -O2 -g /home/markus/bench.cpp > markus@x4 autofdo % perf record -e instructions ./a.out > ... > markus@x4 autofdo % ./create_gcov --binary=a.out --profile=perf.data > --gcov=profile.afdo > E1021 23:23:30.733412 13689 perf_reader.cc:918] Unsupported event type 10 > F1021 23:23:30.733707 13689 perf_parser.cc:114] Check failed: > ReadPerfSampleInfo(**parsed_events_[i].raw_event, &sample_info) > *** Check failure stack trace: *** > @ 0x44469d google::LogMessage::Flush() > @ 0x4470b9 google::LogMessageFatal::~LogMessageFatal() > @ 0x43c668 quipper::PerfParser::SortParsedEvents() > @ 0x43f0cb quipper::PerfParser::ParseRawEvents() > @ 0x4221ef autofdo::PerfDataSampleReader::Append() > @ 0x421af3 autofdo::SampleReader::ReadAndSetMaxCount() > @ 0x417e61 autofdo::ProfileCreator::ReadSample() > @ 0x418db2 autofdo::ProfileCreator::CreateProfile() > @ 0x4086a5 main > @ 0x7fa849ce8fd0 __libc_start_main > @ 0x4099cb (unknown) > @ (nil) (unknown) > [1] 13689 abort ./create_gcov --binary=a.out --profile=perf.data > --gcov=profile.afdo > > -- > Markus