public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Andrew Lutomirski <luto@mit.edu>
Cc: Andi Kleen <andi@firstfloor.org>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	torvalds@linux-foundation.org, lueckintel@yahoo.com,
	kimwooyoung@gmail.com
Subject: Re: New vsyscall emulation breaks JITs
Date: Fri, 05 Aug 2011 15:06:58 -0700	[thread overview]
Message-ID: <4E3C6982.5050901@zytor.com> (raw)
In-Reply-To: <CAObL_7GuauANLqM9DnbYnhRuOsnqE+fTEoM10qCfjc40eFHaUA@mail.gmail.com>

On 08/05/2011 02:26 PM, Andrew Lutomirski wrote:
> 
> For a boot time switch, it might be nicer to just switch between the
> current int 0xcc sequence and the older
> 
> mov cx, 0x<magic>
> int 0xcc
> ret
> 
> sequence.
> 
> That way there's a ret in the vsyscall page but no syscall instruction.
> 

Refresh my memory... we have what... six legacy vsyscall entry points?
We could, hypothetically, burn six interrupt vectors with them.  If we
get them from the 0x40-0x4f range, then they are harmless standalone REX
prefixes (and INC/DEC instructions in 32-bit mode.)

The issue with pin as far as I understand is that it's executing an
instruction at a different address and expecting it to have identical
semantics, which is an incorrect assumption for trapping instructions
(consider doing that for something like SYSENTER!).

Now, as far as RET is concerned I don't see how it does anything that
the INT instruction doesn't do already; ANY of the emulated instructions
have to return to the address on the stack in order to work at all, OR
they can return to the next address and do RET.

	-hpa

  reply	other threads:[~2011-08-05 22:07 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-05 20:09 New vsyscall emulation breaks JITs Andi Kleen
2011-08-05 20:23 ` H. Peter Anvin
2011-08-05 20:26   ` Andi Kleen
2011-08-05 20:36     ` H. Peter Anvin
2011-08-05 20:47       ` Andi Kleen
2011-08-05 20:45   ` Andrew Lutomirski
2011-08-05 20:48     ` H. Peter Anvin
2011-08-05 20:52       ` Andi Kleen
2011-08-05 21:00         ` Andrew Lutomirski
2011-08-05 21:21           ` Andi Kleen
2011-08-05 21:26             ` Andrew Lutomirski
2011-08-05 22:06               ` H. Peter Anvin [this message]
2011-08-05 22:11                 ` Andrew Lutomirski
2011-08-06  0:20                   ` Andrew Lutomirski
2011-08-06  0:32                     ` H. Peter Anvin
2011-08-06  3:01                       ` [RFC] x86-64: Allow emulated vsyscalls from user addresses Andy Lutomirski
2011-08-06  3:04                       ` [RFC v2] " Andy Lutomirski
2011-08-06  6:45                         ` Ingo Molnar
2011-08-07 12:19                           ` Borislav Petkov
2011-08-07 12:58                             ` Andrew Lutomirski
2011-08-07 15:44                               ` Borislav Petkov
2011-08-07 16:14                                 ` Andrew Lutomirski
2011-08-11 13:16                         ` Pavel Machek
2011-08-11 13:27                           ` Andrew Lutomirski
2011-08-09 22:27                       ` New vsyscall emulation breaks JITs Suresh Siddha
2011-08-09 13:26             ` Andrew Lutomirski
2011-08-09 15:04               ` Andi Kleen
2011-08-09 15:22                 ` Andrew Lutomirski
2011-08-09 16:47                   ` [RFC] x86-64: Add vsyscall=emulate|native|none option Andy Lutomirski
2011-08-09 19:54                     ` Linus Torvalds
2011-08-09 16:57                   ` New vsyscall emulation breaks JITs H. Peter Anvin
2011-08-09 17:05                     ` Andrew Lutomirski
     [not found]                       ` <1312919938.17118.YahooMailNeo@web120010.mail.ne1.yahoo.com>
2011-08-09 20:59                         ` H. Peter Anvin
2011-08-09 21:04                         ` Andrew Lutomirski
2011-08-09 22:36                           ` Linus Torvalds
2011-08-10  0:56                             ` H. Peter Anvin
     [not found]                             ` <1312934493.45753.YahooMailNeo@web120015.mail.ne1.yahoo.com>
2011-08-10  1:49                               ` H. Peter Anvin

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=4E3C6982.5050901@zytor.com \
    --to=hpa@zytor.com \
    --cc=andi@firstfloor.org \
    --cc=kimwooyoung@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lueckintel@yahoo.com \
    --cc=luto@mit.edu \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox