Re: [PATCH] arm64: remove special treatment for the link order of head.o

From: Aurelien Jarno
Date: Sat Apr 29 2023 - 04:29:56 EST


On 2023-03-28 16:52, Arnaldo Carvalho de Melo wrote:
> Em Tue, Mar 28, 2023 at 01:33:29PM +0300, Eduard Zingerman escreveu:
> > On Sat, 2023-03-25 at 20:42 +0900, Masahiro Yamada wrote:
> > [...]
> > > > Strange.
> > > >
> > > > I used the .config file Aurelien provided, but
> > > > I still cannot reproduce this issue.
> > > >
> > > > The vmlinux size is small as-is in the current mainline.
> > > >
> > > > [mainline]
> > > >
> > > > masahiro@zoe:~/ref/linux(master)$ git log --oneline -1
> > > > 65aca32efdcb (HEAD -> master, origin/master, origin/HEAD) Merge tag
> > > > 'mm-hotfixes-stable-2023-03-24-17-09' of
> > > > git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> > > > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-size vmlinux
> > > > text data bss dec hex filename
> > > > 24561282 8186912 622032 33370226 1fd3072 vmlinux
> > > > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-readelf -S
> > > > vmlinux | grep -A1 BTF
> > > > [15] .BTF PROGBITS ffff8000091c0708 011d0708
> > > > 000000000048209c 0000000000000000 A 0 0 1
> > > > [16] .BTF_ids PROGBITS ffff8000096427a4 016527a4
> > > > 0000000000000a1c 0000000000000000 A 0 0 1
> > > >
> > > > [mainline + revert 994b7ac]
> > > >
> > > > masahiro@zoe:~/ref/linux2(testing)$ git log --oneline -2
> > > > 856c80dd789c (HEAD -> testing) Revert "arm64: remove special treatment
> > > > for the link order of head.o"
> > > > 65aca32efdcb (origin/master, origin/HEAD, master) Merge tag
> > > > 'mm-hotfixes-stable-2023-03-24-17-09' of
> > > > git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
> > > > masahiro@zoe:~/ref/linux2(testing)$ aarch64-linux-gnu-size vmlinux
> > > > text data bss dec hex filename
> > > > 24561329 8186912 622032 33370273 1fd30a1 vmlinux
> > > > masahiro@zoe:~/ref/linux2(testing)$ aarch64-linux-gnu-readelf -S
> > > > vmlinux | grep -A1 BTF
> > > > [15] .BTF PROGBITS ffff8000091c0708 011d0708
> > > > 00000000004820cb 0000000000000000 A 0 0 1
> > > > [16] .BTF_ids PROGBITS ffff8000096427d4 016527d4
> > > > 0000000000000a1c 0000000000000000 A 0 0 1
> > > >
> > > >
> > > >
> > > > I still do not know what affects reproducibility.
> > > > (compiler version, pahole version, etc. ?)
> > > >
> > > >
> > > >
> > > >
> > > > Aurelien used GCC 12 + binutils 2.40, but
> > > > my toolchain is a bit older.
> > > >
> > > > FWIW, I tested this on Ubuntu 22.04LTS.
> > > >
> > > > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-gcc --version
> > > > aarch64-linux-gnu-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
> > > > Copyright (C) 2021 Free Software Foundation, Inc.
> > > > This is free software; see the source for copying conditions. There is NO
> > > > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> > > >
> > > > masahiro@zoe:~/ref/linux(master)$ pahole --version
> > > > v1.22
> > > >
> > > > masahiro@zoe:~/ref/linux(master)$ aarch64-linux-gnu-as --version
> > > > GNU assembler (GNU Binutils for Ubuntu) 2.38
> > > > Copyright (C) 2022 Free Software Foundation, Inc.
> > > > This program is free software; you may redistribute it under the terms of
> > > > the GNU General Public License version 3 or later.
> > > > This program has absolutely no warranty.
> > > > This assembler was configured for a target of `aarch64-linux-gnu'.
> > >
> > > I did the same things in Deiban sid
> > > in order to use newer versions of tools.
> >
> >
> > Hi Masahiro,
> >
> > An upgrade from gcc 11 to gcc 12, BTF section increase and a number of
> > duplicate IDs reported by resolve_btfids matches the description of
> > the following thread:
> >
> > https://lore.kernel.org/bpf/Y%2FP1yxAuV6Wj3A0K@xxxxxxxxxx/
> >
> > The issue is caused by change in GNU assembler DWARF generation.
> > I've sent a patch to fix it a few weeks ago and it is merged in
> > dwarves master:
> >
> > a9498899109d ("dwarf_loader: Fix for BTF id drift caused by adding unspecified types")
> >
> > Could you please grab a fresh version of dwarves from:
> >
> > git@xxxxxxxxxx:acmel/dwarves.git
> >
> > compile 'pahole' and try with?
>
> pahole 1.25 is long overdue, so let see if this got fixed with what is
> in master, please take a look, you can as well get it from:
>
> git://git.kernel.org/pub/scm/devel/pahole/pahole.git
>

pahole 1.25 has been released, so I have tried a kernel build with it,
and I confirm it fixes the issue. Thanks for the help.

Aurelien

--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien@xxxxxxxxxxx http://aurel32.net