Unhandled level 2 translation fault (11) at 0x000000b8, esr 0x92000046, rpi3 (aarch64)

Catalin Marinas catalin.marinas at arm.com
Mon Jan 9 07:13:54 PST 2017


On Fri, Dec 30, 2016 at 01:21:00PM +0100, Bas van Tiel wrote:
> >> when using a signal handler as a way to context switch between
> >> different usercontexts a reproducible exception occurs on my rpi3 in
> >> 64-bit mode. (https://gist.github.com/DanGe42/7148946)
> >>
> >> Running the context_demo program as a 32-bit ARM executable on a
> >> 64-bit kernel is OK, running as a 32 || 64 bit executable on an x86
> >> kernel is OK.
> >>
> >> In the first exception the PC doesn’t look correct, and the *pmd is 0.
> >> The 2nd exception happens after running the program again, the PC is 0x0.
> >>
> >> A successful function trace was not possible -> complete kernel hangup
> >> when enabling.
> >>
> >> Is there another way to gather more information about what is happening?
> >
> > I can reproduce Segmentation fault with your program on Marvell berlin SoCs
> > my kernel version is 4.1, I didn't tested 4.9, 4.10-rc1 etc..
> >
> > Then I increased the STACKSIZE from 4096 to 8192 in context_demo.c,
> > everything works fine now. Maybe arm64 need a bit larger signalstack?
> 
> yes, increased STACKSIZE to 8192 helps on 4.9/4,10-rc1 but after a
> while the exception still occurs, although the message is different.
> The *pmd is not 0 in this case.

I defined STACKSIZE to the kernel's SIGSTKSZ (16384) and it seems to run
fine, though I'll leave it longer/overnight (on a Juno board). With the
4K signal stack it was crashing shortly after start.

-- 
Catalin



More information about the linux-arm-kernel mailing list