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

From: Stephen Rothwell <[email-masked]>
Date: Wed, 3 Jun 2020 22:20:26 +1000

Hi all,

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

On Wed, 3 Jun 2020 22:13:41 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> Hi John,
> 
> On Wed, 3 Jun 2020 12:45:18 +0100 John Garry <[email-masked]> 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