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