Re: [PATCH v7 7/7] Add Propeller configuration for kernel build

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 12, 2024 at 01:20:46PM -0800, Yonghong Song wrote:
...
> > +5) Use the create_llvm_prof tool (https://github.com/google/autofdo) to
> > +   generate Propeller profile. ::
> > +
> > +      $ create_llvm_prof --binary=<vmlinux> --profile=<perf_file>
> > +                         --format=propeller --propeller_output_module_name
> > +                         --out=<propeller_profile_prefix>_cc_profile.txt
> > +                         --propeller_symorder=<propeller_profile_prefix>_ld_profile.txt
> 
> Prevously I am using perf-6.8.5-0.hs1.hsx.el9.x86_64 and it works fine.
> Now in my system, the perf is upgraded to 6.12.gadc218676eef
> 
> [root@twshared7248.15.atn5 ~]# perf --version
> perf version 6.12.gadc218676eef
> 
> and create_llvm_prof does not work any more.
> 
> The command to collect sampling data:
> 
> # perf record -e BR_INST_RETIRED.NEAR_TAKEN:k -a -N -b -c 500009 -- stress --cpu 36 --io 36 --vm 36 --vm-bytes 128M --timeout 300s
> stress: info: [536354] dispatching hogs: 36 cpu, 36 io, 36 vm, 0 hdd
> stress: info: [536354] successful run completed in 300s
> [ perf record: Woken up 2210 times to write data ]
> [ perf record: Captured and wrote 562.529 MB perf.data (701971 samples) ]
> # uname -r
> 6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39
> 
> The kernel is a 6.11 lto kernel.
> 
> I then run the following command:
> $ cat ../run.sh
> # perf record -e BR_INST_RETIRED.NEAR_TAKEN:k -a -N -b -c 500009 \
> #       -- stress --cpu 36 --io 36 --vm 36 --vm-bytes 128M --timeout 300s
> # good: perf-6.8.5-0.hs1.hsx.el9.x86_64
> 
> # <propeller_profile_prefix>: /tmp/propeller
> ./create_llvm_prof --binary=vmlinux-6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39 \
>          --profile=perf.data \
>          --format=propeller --propeller_output_module_name \
>          --out=/tmp/propeller_cc_profile.txt \
>          --propeller_symorder=/tmp/propeller_ld_profile.txt
> 
> $ ./run.sh
> WARNING: Logging before InitGoogleLogging() is written to STDERR
> I20241212 13:12:18.401772 463318 llvm_propeller_binary_content.cc:376] 'vmlinux-6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39' is PIE: 0
> I20241212 13:12:18.403692 463318 llvm_propeller_binary_content.cc:380] 'vmlinux-6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39' is relocatable: 0
> I20241212 13:12:18.404873 463318 llvm_propeller_binary_content.cc:388] Build Id found in 'vmlinux-6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39': eaacd5a14abc48cf832b3ad0fa6c64635ab569a8
> I20241212 13:12:18.521499 463318 llvm_propeller_binary_content.cc:376] 'vmlinux-6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39' is PIE: 0
> I20241212 13:12:18.521530 463318 llvm_propeller_binary_content.cc:380] 'vmlinux-6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39' is relocatable: 0
> I20241212 13:12:18.521553 463318 llvm_propeller_binary_content.cc:388] Build Id found in 'vmlinux-6.11.1-0_fbk0_lto_rc19_612_gb572dfac1b39': eaacd5a14abc48cf832b3ad0fa6c64635ab569a8
> I20241212 13:12:18.521611 463318 llvm_propeller_perf_lbr_aggregator.cc:51] Parsing [1/1] perf.data ...
> [ERROR:/home/runner/work/autofdo/autofdo/third_party/perf_data_converter/src/quipper/perf_reader.cc:1386] Event size 132 after uint64_t alignment of the filename length is greater than event size 128 reported by perf for the buildid event of type 0
> W20241212 13:12:18.521708 463318 llvm_propeller_perf_lbr_aggregator.cc:55] Skipped profile [1/1] perf.data: FAILED_PRECONDITION: Failed to read perf data file: [1/1] perf.data
> W20241212 13:12:18.521718 463318 llvm_propeller_perf_lbr_aggregator.cc:67] Too few branch records in perf data.
> E20241212 13:12:18.554437 463318 create_llvm_prof.cc:238] FAILED_PRECONDITION: No perf file is parsed, cannot proceed.
> 
> 
> Could you help take a look why perf 12 does not work with create_llvm_prof?
> The create_llvm_prof is downloaded from https://github.com/google/autofdo/releases/tag/v0.30.1.

I think Peter may have reported the same issue on GitHub?

https://github.com/google/autofdo/issues/233

I wonder if this is a kernel side or perf tool regression?

Cheers,
Nathan




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux