Re: parisc crash on boot with 4.8+git

From: Meelis Roos
Date: Sun Oct 09 2016 - 03:33:11 EST


> On 08.10.2016 23:52, Meelis Roos wrote:
> > Just tried 4.8.0-11288-gb66484c on three of my parsic machines (enabled
> > strict usercopy checking or somethinng like that in make oldconfig).
>
> It's not related to the usercopy checks, instead it's most likely a
> parisc-specific problem I just noticed today as well and which I'm
> currently fixing.
>
> > rp3440 worked fine. a500 and rp3410 cras on boot.
> >
> > rp3410 crashed on boot with the following:
> >
> > Linux version 4.8.0-11288-gb66484c (mroos@rp3410) (gcc version 5.4.0 (Gentoo 5.4.0 p1.0) ) #81 Sat Oct 8 20:40:24 EEST 2016
> > unwind_init: start = 0x4076e980, end = 0x407a7060, entries = 14446
> > The 64-bit Kernel has started...
> > Kernel default page size is 4 KB. Huge pages enabled with 1 MB physical and 2 MB virtual size.
> > bootconsole [ttyB0] enabled
> > ...
> > Memory Ranges:
> > 0) Start 0x0000000000000000 End 0x000000003fffffff Size 1024 MB
> > 1) Start 0x0000004040000000 End 0x000000407fdfffff Size 1022 MB
> > Total Memory: 2046 MB
> > Backtrace:
> > [<0000000040102d40>] paging_init+0x5e0/0x740
> > [<0000000040103744>] setup_arch+0x16c/0x1b0
> > [<0000000040100ce0>] start_kernel+0xb8/0x668
> >
> > Bad Address (null pointer deref?): Code=15 regs=00000000408034c0 (Addr=000000099cf94000)
>
> You probably are facing one or both of those problems:
> 1. Your kernel is bigger than the initial kernel mappings
> 2. You face a bug in the palo boot loader.
>
> Regarding 1, you probably have CONFIG_TRACE=y or CONFIG_TEST_RHASHTABLE=y enabled?
> Both increase the kernel size a lot and trigger this bug.

# CONFIG_TEST_RHASHTABLE is not set

There is no CONFIG_TRACE in my .config.

grep TRACE .config gives
CONFIG_STACKTRACE_SUPPORT=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
# CONFIG_TRACE_SINK is not set
# CONFIG_STACKTRACE is not set
# CONFIG_RCU_TRACE is not set
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
# CONFIG_FTRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
CONFIG_TRACE_IRQFLAGS_SUPPORT=y

> To fix it, make sure you have this patch in your kernel (it's upstream):
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=690d097c00c88fa9d93d198591e184164b1d8c20

I saw this batch of parisc changes in mainline, that's why I built new
kernels for test and then I got the error. 4.8.0-11288-gb66484c is the
version I ran, with the commit AFAIK.

> Additionally if people (not you) use a 32bit kernel I suggest this one too (in my for-next tree):
> http://git.kernel.org/cgit/linux/kernel/git/deller/parisc-linux.git/commit/?h=for-next&id=96c65e4d1c77f461b34161dc8e6f2db7c50fd3e8
>
> Both patches increase the initial kernel page mappings to 32MB which should be sufficient.
>
> Even if you fix the kernel with the patches above, you still may run
> into the palo bug. I've just pushed a fix for it into the palo tree:
> https://git.kernel.org/cgit/linux/kernel/git/deller/palo.git/commit/?id=70bd7a9a41e318c0575755a78c4d18ad97495c47
>
> If you rebuild palo, please make sure to install the new ipl boot loader into
> the palo partition of your boot disc. palo should report at bootup version 1.96.
>
> Helge
>

--
Meelis Roos (mroos@xxxxxxxx)