Re: [PATCH 2/3 v3] x86: entry_64.S: always allocate complete "struct pt_regs"

From: Denys Vlasenko
Date: Thu Feb 26 2015 - 07:12:18 EST


On Thu, Feb 26, 2015 at 10:55 AM, Denys Vlasenko
<vda.linux@xxxxxxxxxxxxxx> wrote:
> On Wed, Feb 25, 2015 at 10:59 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
> In addition to my previous tests, I ran my home machine with
> patched kernel. Unfortunately, it works for me :(
>
> Will try on yet another machine.

And voila, it does happen on another machine :)

I'm debugging it right now. Looks like 64-bit syscalls just stop working
at some point in new processes. That is, existing process is alive and well,
but children get SEGV after fork (most likely on any syscall64 they do,
not after fork per se. They eventually manage to kill themselves -
not trivial when exit syscall isn't working either - by tripping on HLT insn).

32-bit syscalls (int 80) continue to work. Fork, exec, whatever you want.
I have static 32-bit busybox binary and everything works there.

Also, any 64-bit process which was under strace continues to work correctly,
including forks and execs.

This points towards some bug on fast path sysret64 code. Looking for it.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/