Re: [PATCH v2 08/10] x86-64: Emulate vsyscalls

Ingo Molnar
2011-05-30T12:15:52Z

* Andrew Lutomirski <luto@mit.edu> wrote:

> On Mon, May 30, 2011 at 6:59 AM, Ingo Molnar <mingo@elte.hu> wrote:
> >
> > * Andrew Lutomirski <luto@mit.edu> wrote:
> >
> >>
> >> I'd advocate waiting until glibc 2.14 comes out with this change:
> >>
> >> http://sourceware.org/git/?p=glibc.git;a=commit;h=a8509ca540427502bd955f35296ff7b727c7a8a1
> >>
> >> I want to add a warning (ratelimited to an extremely low rate) in v3
> >> whenever any of the vsyscalls get used telling users that their legacy
> >> code is suffering a performance impact, but it seems like bad form to
> >> tell people to build glibc from git to avoid a regression.
> >
> > But only statically built binaries would be impacted in practice,
> > right? The number of statically built binaries that heavily rely on
> > vsyscalls ought to be a very small set ...
>
> With current glibc even dynamic binaries take the hit on time().

Indeed, you are right, i completely forgot that again :)

> With the emulation warning (coming in v3), I get (on a Fedora
> 15-based VM):
>
> [ 0.635493] init[1] emulated legacy vsyscall time(); upgrade your
> code to avoid a performance hit. ip:ffffffffff600404 sp:7fff277fe9c8
> caller:3da3e9e27d in libc.so.6[3da3e00000+192000]

Ok, so we should leave the option enabled by default and distros can
flip it as they upgrade/fix glibc, right?

Thanks,

Ingo