[lkml]   [2011]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: New vsyscall emulation breaks JITs
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.


 \ /
  Last update: 2011-08-06 00:09    [W:0.086 / U:44.532 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site