qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] User mode: Handle x86_64 vsyscall


From: Laurent Desnogues
Subject: Re: [Qemu-devel] [PATCH] User mode: Handle x86_64 vsyscall
Date: Sun, 7 Feb 2010 00:50:38 +0100

On Sat, Feb 6, 2010 at 8:49 AM, Stefan Weil <address@hidden> wrote:
[...]
> I tested two different hosts with x86_64-linux-user:
>
> * 32 bit Intel (i386) - does not work with your patch

For me x86_64 on i386 has always failed without
even calling vsyscall :-)

> * 64 bit AMD (x86_64)  - works with your patch
>
> Your patch improves the emulation for 64 bit hosts.
> Nevertheless, it has some open points:
>
> * target-i386 code should not have to know about
>  linux vsyscall

Given that we have to workaround 64-bit virtual
address limitations (cf. Richard mail and previous
discussions on the list), doing otherwise looks
difficult.

> * there is no vsyscall page in memory,
>  but very special programs might expect to see one
>  (it is even worse: the target sees the memory page
>  of the host)
>
> * it is not possible to step into vsyscall code
>  using a debugger

How would you achieve that?  Your guest OS
doesn't necessarily have the code mapped.  I
think this has to be considered as other syscalls,
though slightly different.

> My favorite solution would be a vsyscall page mapped
> to the correct fixed address and filled with QEMU
> generated specific code, for example code which calls the
> normal syscalls to do the work. This would only
> need modifications for linux-user code.

You mean you'd explicitly put somewhere x86_64
code that simulates the behaviour of vsyscall?


Laurent




reply via email to

[Prev in Thread] Current Thread [Next in Thread]