Messages in this thread | | | From | Andrew Lutomirski <> | Date | Fri, 27 May 2011 08:10:37 -0400 | Subject | Re: [GIT pull] x86 vdso updates |
| |
On Fri, May 27, 2011 at 7:59 AM, richard -rw- weinberger <richard.weinberger@gmail.com> wrote: > On Fri, May 27, 2011 at 1:36 PM, Andrew Lutomirski <luto@mit.edu> wrote: >> 2. Remove the vsyscall64 sysctl. That will reduce the number of >> vsyscalls that require the kernel's help to one. (This is a bit >> unfortunate for UML users, but I'm not sure what to do about that. >> UML vgetcpu is already terminally broken.) > > Can you please be a bit more precise on that? > When there is anything I can do, let me know...
glibc's implementation of time, sched_getcpu, and (for static binaries) gettimeofday calls a fixed address in kernel space which returns the answer. On UML, that address is presumably in *host* kernel space and the host will return what the host thinks the answer is.
That's a bit unfortunate if the guest has a different idea of cpu numbering or what time it is. Right now, setting kernel.vsyscall64=0 will turn gettimeofday and time (but not sched_getcpu) into a real syscall. The problem is that I want to remove the vsyscall64 sysctl.
If this is considered enough of a regression, then I guess we can leave vsyscall64 around for awhile, but it will require extra work in the soon-to-be syscall emulation hack to make sure that UML can still trap the syscall.
The real solution is to fix glibc to use the vDSO which should avoid this problem entirely.
--Andy
> > -- > Thanks, > //richard > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |