[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CALCETrXTSBZEWkyiu3ZTbFnT69nT5K5dC9SFtHft-Q+rdJ2FiQ@mail.gmail.com>
Date: Tue, 21 Mar 2017 16:54:52 -0700
From: Andy Lutomirski <luto@...capital.net>
To: Cyrill Gorcunov <gorcunov@...il.com>
Cc: Dmitry Safonov <dsafonov@...tuozzo.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Dmitry Safonov <0x7f454c46@...il.com>,
Adam Borowski <kilobyte@...band.pl>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
Andrei Vagin <avagin@...il.com>, Borislav Petkov <bp@...e.de>,
"Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
X86 ML <x86@...nel.org>, "H. Peter Anvin" <hpa@...or.com>,
Andy Lutomirski <luto@...nel.org>,
Ingo Molnar <mingo@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [Q] Figuring out task mode
On Tue, Mar 21, 2017 at 11:05 AM, Cyrill Gorcunov <gorcunov@...il.com> wrote:
> /I renamed the mail's subject/
>
> On Tue, Mar 21, 2017 at 10:45:57AM -0700, Andy Lutomirski wrote:
>> >> + task_pt_regs(current)->orig_ax |= __X32_SYSCALL_BIT;
>> >> current->thread.status &= ~TS_COMPAT;
>> >
>> > Hi! I must admit I didn't follow close the overall series (so can't
>> > comment much here :) but I have a slightly unrelated question -- is
>> > there a way to figure out if task is running in x32 mode say with
>> > some ptrace or procfs sign?
>>
>> You should be able to figure out of a *syscall* is x32 by simply
>> looking at bit 30 in the syscall number. (This is unlike i386, which
>> is currently not reflected in ptrace.)
>
> Yes, syscall number will help but from criu perpspective (until
> Dima's patches are merged into mainlie) we need to figure out
> if we can dump x32 tasks without running parasite code inside,
> ie via plain ptrace call or some procfs output. But looks like
> it's impossible for now.
>
>> Do we actually have an x32 per-task mode at all? If so, maybe we can
>> just remove it on top of Dmitry's series.
>
> Don't think so, x32 should be set upon exec and without Dima's series
> it is immutable I think.
What I mean is: why should the kernel care about per-task X32 state
*at all*? On top of Dmitry's series, TIF_X32 appears to be used to
determine which vDSO to map, which mm layout to use, *and nothing
else*. Want to write a trivial patch to get rid of it entirely?
Ideally we could get rid of mm->context.ia32_compat, too. The only
interesting use it has is MPX, and we should probably instead track
mm->context.mpx_layout and determine *that* from the prctl() bitness.
Powered by blists - more mailing lists