Re: x32 processes, with CONFIG_X86_X32 not set

From: Andy Lutomirski
Date: Fri Mar 25 2016 - 11:52:04 EST


On Fri, Mar 25, 2016 at 8:48 AM, Dave Jones <davej@xxxxxxxxxxxxxxxxx> wrote:
> I had a trinity process get stuck last overnight.
> The reason for it getting stuck is my bug (I think), but
> there's an odd unrelated thing I noticed while debugging this..
>
> $ strace -p 20966
> strace: Process 20966 attached
> strace: [ Process PID=20966 runs in x32 mode. ]
>
> So I don't use that new-fangled x32 stuff.
> I don't even have CONFIG_X86_X32 compiled in.
>
> Is this strace getting confused, or did we somehow screw
> up the syscall entry code ?
>
> Dave
>

I think you're just seeing an oddity of how x32 works. Unlike
"compat", x32-ness of the current syscall isn't a special magic state
variable; it's just but 31 in the syscall nr. So trying to do an x32
syscall on a non-x32 syscall should still show bit 31 set to ptracers,
and the strace probably decodes this as being in x32 mode.

--Andy