[PATCH] D102039: [profile] Add binary id into profiles

Vitaly Buka via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 14 19:33:18 PST 2021


buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
/b/sanitizer-x86_64-linux/build/llvm_build64/bin/clang   -m64  -ldl
 -fprofile-instr-generate -Wl,--build-id=none -O2 -o
/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp
/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/profile/Linux/binary-id.c
buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
env
LLVM_PROFILE_FILE=/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw
 /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp
buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
../llvm_build64/bin/llvm-profdata show --binary-ids
 /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw
>
/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.out
buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
../llvm_build64/bin/llvm-profdata show --binary-ids
 /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw

Instrumentation level: Front-end
Total functions: 3
Maximum function count: 1
Maximum internal block count: 0
buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
../llvm_build64/bin/llvm-profdata merge -o
/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profdata
/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw
buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
/b/sanitizer-x86_64-linux/build/llvm_build64/bin/clang   -m64  -ldl
 -fprofile-instr-generate -Wl,--build-id -O2 -o
/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp
/b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/profile/Linux/binary-id.c
buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
env
LLVM_PROFILE_FILE=/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw
 /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp
buildbot at sanitizer-buildbot-vb-wlz1:/b/sanitizer-x86_64-linux/build/compiler_rt_build$
../llvm_build64/bin/llvm-profdata show --binary-ids
 /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw

Instrumentation level: Front-end
Total functions: 3
Maximum function count: 1
Maximum internal block count: 0


And no Binary IDs

On Wed, 8 Dec 2021 at 10:07, Gulfem Savrun Yeniceri via Phabricator <
reviews at reviews.llvm.org> wrote:

> gulfem added a comment.
>
> In D102039#3171276 <https://reviews.llvm.org/D102039#3171276>,
> @vitalybuka wrote:
>
> > Yes, looks like both LLVM servers are down https://lab.llvm.org/
> > FYI The special about that staging bot is that it is Ubuntu with recent
> > glibc 2.34. Our primary bot runs exactly the same build on Debian with
> > glibc 2.28 and the test passes there. It can be glibc or other
> dependencies.
>
> I tried to reproduce it on my machine, but I it uses Debian (not Ubuntu),
> so the issue did not reproduce.
> With that patch, we started embedding build id (a unique identifier) into
> llvm profiles.
> That test basically enables build id in the binary by using
> `-Wl,--build-id -O2` option.
> It then generates a llvm profile, and tries to read embedded build id from
> the profile.
> What is the output of the following command?
>
>   /b/sanitizer-x86_64-linux/build/llvm_build64/bin/clang   -m64  -ldl
> -fprofile-instr-generate -Wl,--build-id -O2 -o
> /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp
> /b/sanitizer-x86_64-linux/build/llvm-project/compiler-rt/test/profile/Linux/binary-id.c
>   readelf -n
> /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp
>
>
> If we have build id in the binary, `readelf` (you can also use
> `llvm-readelf` instead) should have some output like that:
>
>   Displaying notes found in: .note.gnu.build-id
>     Owner                Data size        Description
>     GNU                  0x00000014       NT_GNU_BUILD_ID (unique build ID
> bitstring)
>       Build ID: 8699f6e0c4e12b872aae7e1f37fa6ba2564e9702
>
> If we have build id in the binary, we should then check whether build id
> is embedded in the profile:
>
>   env
> LLVM_PROFILE_FILE=/b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw
> /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp
>   llvm-profdata show --binary-ids
> /b/sanitizer-x86_64-linux/build/compiler_rt_build/test/profile/Profile-x86_64/Linux/Output/binary-id.c.tmp.profraw
>
>
> What is the output of the above command?
>
>
> Repository:
>   rG LLVM Github Monorepo
>
> CHANGES SINCE LAST ACTION
>   https://reviews.llvm.org/D102039/new/
>
> https://reviews.llvm.org/D102039
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211214/d0ec8acd/attachment.html>


More information about the llvm-commits mailing list