All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Safonov <dsafonov@virtuozzo.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Dmitry Safonov <0x7f454c46@gmail.com>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Ingo Molnar <mingo@redhat.com>,
	Shuah Khan <shuahkh@osg.samsung.com>,
	Borislav Petkov <bp@alien8.de>, X86 ML <x86@kernel.org>,
	<khorenko@virtuozzo.com>,
	Andrew Morton <akpm@linux-foundation.org>, <xemul@virtuozzo.com>,
	<linux-kselftest@vger.kernel.org>,
	Cyrill Gorcunov <gorcunov@openvz.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH 1/2] x86/arch_prctl: add ARCH_SET_{COMPAT,NATIVE} to change compatible mode
Date: Fri, 8 Apr 2016 19:18:57 +0300	[thread overview]
Message-ID: <5707D9F1.3090102@virtuozzo.com> (raw)
In-Reply-To: <CALCETrUU1iTcvfcxYHU6CMacyZrjxiphGB3r5U_4oof7zDd82g@mail.gmail.com>

On 04/08/2016 06:56 PM, Andy Lutomirski wrote:
> On Fri, Apr 8, 2016 at 6:50 AM, Dmitry Safonov <dsafonov@virtuozzo.com> wrote:
>> Hello again,
>> what do you think about attached patch?
>> I think it should fix landing problem for i386 vdso mremap.
>> It does not touch fast syscall path, so there should be no
>> speed regression.
> For this thing:
>
> +    /* Fixing userspace landing - look at do_fast_syscall_32 */
> +    if (current_thread_info()->status & TS_COMPAT)
> +        regs->ip = (unsigned long)current->mm->context.vdso +
> +            vdso_image_32.sym_int80_landing_pad;
>
> Either check that ip was where you expected it
And if it's not there - return error?
>   or simply remove this
> code -- user programs that are mremapping the vdso are already playing
> with fire and can just use int $0x80 to do it.
>
> Other than that, it looks generally sane.  The .mremap hook didn't
> exist last time I looked at this :)
>
> The main downside of your approach is that it doesn't allow switching
> between the 32-bit, 64-bit, and x32 images.  Also, it requires
> awareness of how vvar and vdso line up, whereas a dedicated API could
> do the whole thing.
Yes, I'm working on it. This patch will only allow moving vdso
image with general mremap - so I could use arch_prctl for
that API, as for native i386 one may move vdso with mremap
and cannot map any other vdso blobs.
Does it sound fine?

So, I have some difficulties with removing TIF_IA32 flag:
it's checked by perf for interpreting stack frames/instructions
and may be checked out of syscall executing (when tracing
page fault events, for example). I doubt, is it sane to remove
TS_COMPAT instead, leaving TIF_IA32, as for some cases
we need to know if task is compatible outside of syscall's path?
And the comment in asm/syscall.h says:
 >  * TIF_IA32 tasks should always have TS_COMPAT set at
 >  * system call time.
that means, that TS_COMPAT is always set on TIF_IA32, so
is meaningless.
What do you think?

Thanks,
Dmitry.

  reply	other threads:[~2016-04-08 16:36 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-06 16:29 [PATCH 0/2] x86: add arch_prctl to switch between native/compat modes Dmitry Safonov
2016-04-06 16:29 ` [PATCH 1/2] x86/arch_prctl: add ARCH_SET_{COMPAT,NATIVE} to change compatible mode Dmitry Safonov
2016-04-06 18:04   ` Andy Lutomirski
2016-04-06 18:49     ` Andy Lutomirski
2016-04-07 12:11     ` Dmitry Safonov
2016-04-07 12:21       ` Cyrill Gorcunov
2016-04-07 12:35         ` Dmitry Safonov
2016-04-07 14:39       ` Andy Lutomirski
2016-04-07 15:18         ` Dmitry Safonov
2016-04-08 13:50         ` Dmitry Safonov
2016-04-08 15:56           ` Andy Lutomirski
2016-04-08 16:18             ` Dmitry Safonov [this message]
2016-04-08 20:44               ` Andy Lutomirski
2016-04-09  8:06                 ` Dmitry Safonov
2016-04-13 16:55                 ` Dmitry Safonov
2016-04-14 18:27                   ` Andy Lutomirski
2016-04-20 11:04                     ` Peter Zijlstra
2016-04-20 15:40                       ` Andy Lutomirski
2016-04-20 19:05                         ` Peter Zijlstra
2016-04-21 19:39                           ` Andy Lutomirski
2016-04-21 20:12                             ` Peter Zijlstra
2016-04-21 23:27                               ` Andy Lutomirski
2016-04-21 23:46                                 ` Andy Lutomirski
2016-04-25 15:16                                 ` Peter Zijlstra
2016-04-25 16:50                                   ` Andy Lutomirski
2016-04-06 16:29 ` [PATCH 2/2] x86/tools/testing: add test for ARCH_SET_COMPAT Dmitry Safonov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5707D9F1.3090102@virtuozzo.com \
    --to=dsafonov@virtuozzo.com \
    --cc=0x7f454c46@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=gorcunov@openvz.org \
    --cc=hpa@zytor.com \
    --cc=khorenko@virtuozzo.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@redhat.com \
    --cc=shuahkh@osg.samsung.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=xemul@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.