On Thu, Jan 4, 2018 at 12:43 PM, Andy Lutomirski luto@amacapital.net wrote:
On Jan 4, 2018, at 12:29 PM, Linus Torvalds torvalds@linux-foundation.org wrote:
On Thu, Jan 4, 2018 at 12:16 PM, Thomas Voegtle tv@lio96.de wrote:
Attached a screenshot. Is that useful? Are there some debug options I can add?
Not much of an oops, because the SIGSEGV happens in user space. The only reason you get any kernel stack printout at all is because 'init' dying will make the kernel print that out.
The segfault address for init looks like the fixmap area to me (first byte in the last page of the fixmap?). "Error 5" means that it's a user-space read that got a protection fault. So it's not a LDT of GDT update or anything like that, it's a normal access from user space (or a qemu emulation bug, but that sounds unlikely).
Is that the vsyscall page?
Adding Luto to the participants. I think he noticed one of the vsyscall patches missing earlier in the 4.9 series. Maybe the 4.4 series had something similar..
That's almost certainly it.
I'll try to find some time today or tomorrow to add a proper selftest.
Give this a shot:
https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git/commit/?h=x86...
Boot with each of vsyscall=none, vsyscall=native, and vsyscall=emulate and run both the 32-bit and 64-bit variants of that test. All six combinations should pass. But I bet they don't on 4.4.