autofdo: Can't Process Perf File

I have a perf file that autofdo doesn’t seem to be able to do anything with. Is autofdo not able to handle “use_lbr”?

$ ~/autofdo/build/create_llvm_prof --profile vmlinux.tcp_rr.not-instrumented.perf --binary ../pkgs/boot/vmlinux-4.15.0-smp-922.38.999.999 --out vmlinux.tcp_rr.not-instrumented.profraw
[INFO:/usr/local/google/home/morbo/autofdo/third_party/perf_data_converter/src/quipper/perf_reader.cc:1058] Number of events stored: 61392
[INFO:/usr/local/google/home/morbo/autofdo/third_party/perf_data_converter/src/quipper/perf_parser.cc:274] Parser processed: 1142 MMAP/MMAP2 events, 3148 COMM events, 3219 FORK events, 305 EXIT events, 52726 SAMPLE events, 52473 of these were mapped, 0 SAMPLE events with a data address, 0 of these were mapped
WARNING: Logging before InitGoogleLogging() is written to STDERR
W20220926 22:25:58.449682 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.450127 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.450407 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.459457 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.465374 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.472229 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.474949 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.476979 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.477377 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.484407 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.485718 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.487694 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.489140 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
W20220926 22:25:58.492909 2695262 profile.cc:105] use_lbr was enabled but range_count_map was empty!
 ...

vmlinux.tcp_rr.not-instrumented.perf.gz

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Comments: 17 (8 by maintainers)

Most upvoted comments

A tangential note - AMD has added BRS (which is the counterpart of INTEL LBR) support to it’s Fam19h Model 01h CPUs. And current toolchains support it seamlessly. We’ve also done an evaluation on AMD BRS and the performance numbers are on par.

As to the profile, the number of functions that have counters are too small, usually we will either tune down “-c” or tune up profiling period. Also use “loadtests” that “saturate” kernel functionality would be crucial.

@shenhanc78 Hi, can you share more detail? Such as: use the same commands “perf record -b ./sort”? I’m evaluating AutoFDO on AMD platform. Right now I use the same commands, met many unsupported events error. Thanks! Looking forwarding to getting more info from you. image

A tangential note - AMD has added BRS (which is the counterpart of INTEL LBR) support to it’s Fam19h Model 01h CPUs. And current toolchains support it seamlessly. We’ve also done an evaluation on AMD BRS and the performance numbers are on par.

As to the profile, the number of functions that have counters are too small, usually we will either tune down “-c” or tune up profiling period. Also use “loadtests” that “saturate” kernel functionality would be crucial.