-
Notifications
You must be signed in to change notification settings - Fork 15
FAILED unresolved symbol vfs_truncate #1297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I am not a BPF/BTF expert but I inspected my vmlinux on x86-64 where I have all above Kconfigs set: $ /opt/llvm-toolchain/bin/llvm-objdump -Dr vmlinux
ffffffff8252ecfc <__BTF_ID__func__vfs_truncate__622>:
ffffffff8252ecfc: e0 76 loopne 0xffffffff8252ed74 <__BTF_ID__struct__udp6_sock__1270>
ffffffff8252ecfe: 00 00 addb %al, (%rax)
ffffffff8252ed10 <bpf_d_path_btf_ids>:
ffffffff8252ed10: ca 00 00 lretl $0
ffffffff8252ed13: 00 03 addb %al, (%rbx) So, this seems to be arm64 specific. |
Playing with
|
TL;DR of the upstream thread: This appears to be a pahole bug, exposed by arm64's BTI (which is why Sedat does not see anything). Jiri Olsa has posted a tentative pahole fix, which I have verified against Veronika's original config and the reduced one that I came up with. |
@nathanchance My selfmade LLVM toolchain v12.0.0-rc1 supports AArch64 arch: $ /opt/llvm-toolchain/bin/llc --version
LLVM (http://llvm.org/):
LLVM version 12.0.0
Optimized build.
Default target: x86_64-unknown-linux-gnu
Host CPU: sandybridge
Registered Targets:
aarch64 - AArch64 (little endian)
aarch64_32 - AArch64 (little endian ILP32)
aarch64_be - AArch64 (big endian)
arm64 - ARM64 (little endian)
arm64_32 - ARM64 (little endian ILP32)
bpf - BPF (host endian)
bpfeb - BPF (big endian)
bpfel - BPF (little endian)
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64 Can I cross-build for Just curious - I wanted to throw out Aarch64 target in my next |
We do
|
Is that your first comment in the CBL BTS :-)? I normally build my LLVM toolchain with Kept the build-log - so I see:
That was my first Linux/arm64 cross-build :-). Dunno, if I have time with this. |
Hah possibly. I usually just annoy people on the mailing list and let them handle the rest (like with reporting this bug) 🙈 I'm a bit confused by your comment now as based on the question and issue I assumed you're asking about cross compiling the kernel to reproduce the problem/test the fix, but then linked LLVM building scripts. If you were asking about cross building LLVM and not the kernel then I'm sorry for misunderstanding! |
Indeed, 1st I like to confuse people and 2nd I wanted to reproduce this issue for Linux/arm64 but was not sure if I have all toolchain requirement to do so. |
Given that your target list contains both ARM and BPF targets you should be good to go :) |
/me gets red (hat). |
pahole patch posted: https://lore.kernel.org/r/[email protected]/ |
looks like pahole has this as 8e1f8c904e303d5d142d24e820f01b47a35bb72a which was in v1.21. |
Initially reported by @veruu: https://groups.google.com/g/clang-built-linux/c/de_mNh23FOc/m/E7cu5BwbBAAJ
Isolated set of configs:
I have reported this to the BPF folks upstream: https://lore.kernel.org/r/20210209034416.GA1669105@ubuntu-m3-large-x86/
The text was updated successfully, but these errors were encountered: