Unhandled level 2 translation fault (11) at 0x000000b8, esr 0x92000046, rpi3 (aarch64)
From: catalin.marinas@arm.com (Catalin Marinas)
Date: 2017-01-09 15:13:54
On Fri, Dec 30, 2016 at 01:21:00PM +0100, Bas van Tiel wrote:
quoted
quoted
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