Re: arm64 build issue and mainline crash (was Re: linux-next: Tree for Jun 3)

From: Stephen Rothwell
Date: Wed Jun 03 2020 - 08:20:32 EST


Hi all,

Just resending to get past the infradead.org mail filters (hopefully).

On Wed, 3 Jun 2020 22:13:41 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Hi John,
>
> On Wed, 3 Jun 2020 12:45:18 +0100 John Garry <john.garry@xxxxxxxxxx> wrote:
> >
> > On 03/06/2020 12:06, Stephen Rothwell wrote:
> >
> > JFYI, I am finding the vanilla defconfig build broken for arm64:
> >
> > LD vmlinux.o
> >
> >
> > /home/john/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ld:
> > cannot find ./drivers/firmware/efi/libstub/lib.abuilt-in.a: No such file
> > or directory
> > make[1]: *** [vmlinux] Error 1
> >
> >
> > make: *** [__sub-make] Error 2
> >
> >
> > john@htsatcamb-server:~/linux-next$
> >
> > In addition, the reason I was testing this was because Linus' master
> > (d6f9469a03d8 Merge tag 'erofs-for-5.8-rc1' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs) was crashing:
> >
> > [ 5.368948] loop: module loaded
> > [ 5.372113] Unable to handle kernel paging request at virtual address
> > fffff9ffcfec4000
> > [ 5.380067] Mem abort info:
> > [ 5.382865]ESR = 0x96000044
> > [ 5.385927]EC = 0x25: DABT (current EL), IL = 32 bits
> > [ 5.391260]SET = 0, FnV = 0
> > [ 5.394319]EA = 0, S1PTW = 0
> > [ 5.397467] Data abort info:
> > [ 5.400354]ISV = 0, ISS = 0x00000044
> > [ 5.404203]CM = 0, WnR = 1
> > [ 5.407178] swapper pgtable: 4k pages, 48-bit VAs, pgdp=000000002f3f1000
> > [ 5.413909] [fffff9ffcfec4000] pgd=0000000000000000
> > [ 5.418807] Internal error: Oops: 96000044 [#1] PREEMPT SMP
> > [ 5.424399] Modules linked in:
> > [ 5.427462] CPU: 11 PID: 1 Comm: swapper/0 Not tainted
> > 5.7.0-05047-gd6f9469a03d8 #388
> > [ 5.435325] Hardware name: Huawei Taishan 2280 /D05, BIOS Hisilicon D05
> > IT21 Nemo 2.0 RC0 04/18/2018
> > [ 5.444499] pstate: 40000005 (nZcv daif -PAN -UAO BTYPE=--)
> > [ 5.450098] pc : __memset+0x16c/0x1c0
> > [ 5.453770] lr : pcpu_alloc+0x1a0/0x668
> > [ 5.457615] sp : ffff800011d3bbd0
> > [ 5.460936] x29: ffff800011d3bbd0 x28: ffff001fb5495180
> > [ 5.466267] x27: 0000000000000001 x26: 0000000000000100
> > [ 5.471597] x25: 0000000000000001 x24: 0000000000000001
> > [ 5.476928] x23: ffff80001135e9a0 x22: ffff80001196a200
> > [ 5.482259] x21: ffff80001196a360 x20: 0000000000000000
> > [ 5.487590] x19: 0000000000000000 x18: fffffe107e6fdb08
> > [ 5.492920] x17: 000000000000003f x16: 0000000000000000
> > [ 5.498251] x15: ffff001ffbffee00 x14: 0000000000000002
> > [ 5.503581] x13: 0000000000000000 x12: 000000000000003f
> > [ 5.508912] x11: 0000000000000040 x10: 0000000000000040
> > [ 5.514243] x9 : 0000000000000000 x8 : fffff9ffcfec4000
> > [ 5.519573] x7 : 0000000000000000 x6 : 000000000000003f
> > [ 5.524904] x5 : 0000000000000040 x4 : 0000000000000000
> > [ 5.530234] x3 : 0000000000000004 x2 : 00000000000000c0
> > [ 5.535565] x1 : 0000000000000000 x0 : fffff9ffcfec4000
> > [ 5.540896] Call trace:
> > [ 5.543344] __memset+0x16c/0x1c0
> > [ 5.546666] __alloc_percpu+0x14/0x1c
> > [ 5.550338] alloc_workqueue+0x164/0x42c
> > [ 5.554273] init+0x24/0xa4
> > [ 5.557071] do_one_initcall+0x50/0x194
> > [ 5.560917] kernel_init_freeable+0x1e4/0x250
> > [ 5.565288] kernel_init+0x10/0x104
> > [ 5.568785] ret_from_fork+0x10/0x18
> > [ 5.572372] Code: 91010108 54ffff4a 8b040108 cb050042 (d50b7428)
> > [ 5.578568] ---[ end trace 63c299bbe9b8ea9e ]---
> > [ 5.583205] Kernel panic - not syncing: Attempted to kill init!
> > exitcode=0x0000000b
> > [ 5.590903] SMP: stopping secondary CPUs
> > [ 5.594846] Kernel Offset: 0xf0000 from 0xffff800010000000
> > [ 5.600350] PHYS_OFFSET: 0x0
> > [ 5.603235] CPU features: 0x240022,20806008
> > [ 5.607430] Memory Limit: none
> > [ 5.610500] ---[ end Kernel panic - not syncing: Attempted to kill init!
> > exitcode=0x0000000b ]---
> >
> > I'll check that when I get a chance. Maybe all just transient.
>
> Yeah, I forgot to add a patch to make arm64 build again (it will be in
> linux-next tomorrow). If you want to apply it to your tree, here is
> what I was given:
>
> diff --git a/Makefile b/Makefile
> index f80c4ff93ec9..fbb4b95ae648 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1074,7 +1074,7 @@ build-dirs := $(vmlinux-dirs)
> clean-dirs := $(vmlinux-alldirs)
>
> # Externally visible symbols (used by link-vmlinux.sh)
> -KBUILD_VMLINUX_OBJS := $(head-y) $(addsuffix built-in.a, $(core-y))
> +KBUILD_VMLINUX_OBJS := $(head-y) $(patsubst %/,%/built-in.a, $(core-y))
> KBUILD_VMLINUX_OBJS += $(addsuffix built-in.a, $(filter %/, $(libs-y)))
> ifdef CONFIG_MODULES
> KBUILD_VMLINUX_OBJS += $(patsubst %/, %/lib.a, $(filter %/, $(libs-y)))

--
Cheers,
Stephen Rothwell

Attachment: pgpRlCEbCuGeB.pgp
Description: OpenPGP digital signature