On 4/6/21 10:23 AM, Yonghong Song wrote:
On 4/6/21 10:03 AM, Arnaldo Carvalho de Melo wrote:
Em Tue, Apr 06, 2021 at 01:59:30PM -0300, Arnaldo Carvalho de Melo
escreveu:
Em Tue, Apr 06, 2021 at 01:55:54PM -0300, Arnaldo Carvalho de Melo
escreveu:
Em Tue, Apr 06, 2021 at 01:40:20PM -0300, Arnaldo Carvalho de Melo
escreveu:
Em Tue, Apr 06, 2021 at 10:22:37AM -0300, Arnaldo Carvalho de Melo
escreveu:
I'm seeing these here:
[acme@five bpf]$ rm -f ../build/bpf_clang_thin_lto/*vmlinu*
[acme@five bpf]$ time make -j28 LLVM=1 LLVM_IAS=1
O=../build/bpf_clang_thin_lto/ vmlinux
make[1]: Entering directory '/home/acme/git/build/bpf_clang_thin_lto'
GEN Makefile
DESCEND objtool
DESCEND bpf/resolve_btfids
CALL /home/acme/git/bpf/scripts/atomic/check-atomics.sh
CALL /home/acme/git/bpf/scripts/checksyscalls.sh
CHK include/generated/compile.h
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
AR init/built-in.a
GEN .tmp_initcalls.lds
LTO vmlinux.o
OBJTOOL vmlinux.o
vmlinux.o: warning: objtool: aesni_gcm_init_avx_gen2()+0x12:
unsupported stack pointer realignment
vmlinux.o: warning: objtool: aesni_gcm_enc_update_avx_gen2()+0x12:
unsupported stack pointer realignment
vmlinux.o: warning: objtool: aesni_gcm_dec_update_avx_gen2()+0x12:
unsupported stack pointer realignment
vmlinux.o: warning: objtool: aesni_gcm_finalize_avx_gen2()+0x12:
unsupported stack pointer realignment
vmlinux.o: warning: objtool: aesni_gcm_init_avx_gen4()+0x12:
unsupported stack pointer realignment
vmlinux.o: warning: objtool: aesni_gcm_enc_update_avx_gen4()+0x12:
unsupported stack pointer realignment
vmlinux.o: warning: objtool: aesni_gcm_dec_update_avx_gen4()+0x12:
unsupported stack pointer realignment
vmlinux.o: warning: objtool: aesni_gcm_finalize_avx_gen4()+0x12:
unsupported stack pointer realignment
MODPOST vmlinux.symvers
MODINFO modules.builtin.modinfo
GEN modules.builtin
LD .tmp_vmlinux.btf
BTF .btf.vmlinux.bin.o
LD .tmp_vmlinux.kallsyms1
KSYMS .tmp_vmlinux.kallsyms1.S
AS .tmp_vmlinux.kallsyms1.S
LD .tmp_vmlinux.kallsyms2
KSYMS .tmp_vmlinux.kallsyms2.S
AS .tmp_vmlinux.kallsyms2.S
LD vmlinux
BTFIDS vmlinux
WARN: multiple IDs found for 'inode': 232, 28822 - using 232
WARN: multiple IDs found for 'file': 374, 28855 - using 374
WARN: multiple IDs found for 'path': 379, 28856 - using 379
WARN: multiple IDs found for 'vm_area_struct': 177, 28929 - using 177
WARN: multiple IDs found for 'task_struct': 97, 28966 - using 97
WARN: multiple IDs found for 'seq_file': 510, 29059 - using 510
WARN: multiple IDs found for 'inode': 232, 29345 - using 232
WARN: multiple IDs found for 'file': 374, 29429 - using 374
WARN: multiple IDs found for 'path': 379, 29430 - using 379
WARN: multiple IDs found for 'vm_area_struct': 177, 29471 - using 177
WARN: multiple IDs found for 'task_struct': 97, 29481 - using 97
WARN: multiple IDs found for 'seq_file': 510, 29512 - using 510
SORTTAB vmlinux
SYSMAP System.map
make[1]: Leaving directory '/home/acme/git/build/bpf_clang_thin_lto'
[acme@five pahole]$ clang -v
clang version 11.0.0 (Fedora 11.0.0-2.fc33)
This could be due to the compiler. The clang 11 is used here. Sedat is
using clang 12 and didn't see warnings and I am using clang dev branch
(clang 13) and didn't see warnings either. clang 11 could generate
some debuginfo where pahole didn't handle it properly.
I tried to build locally with clang 11 but it crashed as I enabled
assert during compiler build. Will try a little bit more.
Yes, I can see it with llvm11:
LD vmlinux
BTFIDS vmlinux
WARN: multiple IDs found for 'inode': 245, 36255 - using 245
WARN: multiple IDs found for 'file': 390, 36288 - using 390
WARN: multiple IDs found for 'path': 395, 36289 - using 395
WARN: multiple IDs found for 'vm_area_struct': 190, 36362 - using 190
WARN: multiple IDs found for 'task_struct': 93, 36399 - using 93
WARN: multiple IDs found for 'seq_file': 524, 36498 - using 524
WARN: multiple IDs found for 'inode': 245, 36784 - using 245
WARN: multiple IDs found for 'file': 390, 36868 - using 390
WARN: multiple IDs found for 'path': 395, 36869 - using 395
WARN: multiple IDs found for 'vm_area_struct': 190, 36910 - using 190
WARN: multiple IDs found for 'task_struct': 93, 36920 - using 93
WARN: multiple IDs found for 'seq_file': 524, 36951 - using 524
SORTTAB vmlinux
SYSMAP System.map
LTO [M] crypto/crypto_engine.lto.o
LTO [M] drivers/crypto/virtio/virtio_crypto.lto.o
$ clang --version
clang version 11.1.0 (https://github.com/llvm/llvm-project.git
1fdec59bffc11ae37eb51a1b9869f0696bfd5312)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/yhs/work/llvm-project/llvm/build/install/bin
clang12 is okay:
LTO vmlinux.o
OBJTOOL vmlinux.o
MODPOST vmlinux.symvers
MODINFO modules.builtin.modinfo
GEN modules.builtin
LD .tmp_vmlinux.btf
BTF .btf.vmlinux.bin.o
LD .tmp_vmlinux.kallsyms1
KSYMS .tmp_vmlinux.kallsyms1.S
AS .tmp_vmlinux.kallsyms1.S
LD .tmp_vmlinux.kallsyms2
KSYMS .tmp_vmlinux.kallsyms2.S
$ clang --version
clang version 12.0.0 (https://github.com/llvm/llvm-project.git
31001be371e8f2c74470e727e54503fb2aabec8b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/yhs/work/llvm-project/llvm/build/install/bin
I think we do not need to fix pahole for llvm11.
When linus tree 5.12 is out. clang 12 should have been released
or very close, we can just recommend clang 12 and later.
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation:
/usr/bin/../lib/gcc/x86_64-redhat-linux/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/10
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/10
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
[acme@five pahole]$
[acme@five bpf]$ git log --oneline -10
49b9da70941c3c8a (HEAD -> bpf_perf_enable) kbuild: add an elfnote
with type BUILD_COMPILER_LTO_INFO
5c4f082a143c786e kbuild: move LINUX_ELFNOTE_BUILD_SALT to elfnote.h
42c8b565decb3662 bpf: Introduce helpers to enable/disable perf
event fds in a map
f73ea1eb4cce6637 (bpf-next/master, bpf-next/for-next) bpf:
selftests: Specify CONFIG_DYNAMIC_FTRACE in the testing config
f07669df4c8df0b7 libbpf: Remove redundant semi-colon
6ac4c6f887f5a8ef bpf: Remove repeated struct btf_type declaration
2daae89666ad2532 bpf, cgroup: Delete repeated struct bpf_prog
declaration
2ec9898e9c70b93a bpf: Remove unused parameter from ___bpf_prog_run
007bdc12d4b46656 bpf, selftests: test_maps generating unrecognized
data section
82506665179209e4 tcp: reorder tcp_congestion_ops for better cache
locality
[acme@five bpf]$
I'll try after a 'make mrproper'
Same thing, trying now with gcc.
[...]