Laurent Desnogues wrote:
> On Sat, Feb 6, 2010 at 8:49 AM, Stefan Weil <w...@mail.berlios.de> 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

It's a bit worrying that it depends on the host architecture at all.

How well does x86_64-linux-user emulation work on non-x86 hosts?

Does the vsyscall emulation depend only on the hosts's address sixe,
or does it have to be an x86 host to work?

> > * 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.

There is no guest OS when doing -user emulation.
Only qemu.

> > 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?

That seems like a good idea to me.

-- Jamie


Reply via email to