[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] User mode: Handle x86_64 vsyscall
From: |
Edgar E. Iglesias |
Subject: |
Re: [Qemu-devel] [PATCH] User mode: Handle x86_64 vsyscall |
Date: |
Sun, 18 Oct 2009 09:17:02 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Sun, Oct 18, 2009 at 04:09:44AM +0100, Jamie Lokier wrote:
> Edgar E. Iglesias wrote:
> > Did you consider having the linux-user loader pass a qemu version of the
> > x86_64 vdso to the guest through the auxvector? That version could probably
> > implement the vsyscalls by translating them into syscalls with x86_64 code.
>
> That seems like a good idea.
>
> Note that on x86_64, there is _both_ a vsyscall page at a fixed
> address, and a vdso page at a randomised address with different
> contents. Binary programs can call either or both.
>
> On x86_32, there is only a vdso page. It can be a variable or fixed
> address. To run old binaries (but not so old they don't know about
> vsyscall), it needs to be mapped at a fixed address. Modern kernels
> have it mapped at a randomised address, and therefore won't work with
> those binaries.
Thanks for clarifiying.
If I understand correctly, my suggestion won't work for vsyscalls because
the specific fixed address might be unavailable or already used by the
host...
Cheers