On Sun, Jun 15, 2014 at 7:36 PM, Andi Kleen [off-list ref] wrote:
I haven't looked into this in detail, but my initial assumption would
be that it wouldn't be useful to add new vdso interfaces just for Go.
After all would you really want to force ever Go user to upgrade their
kernel just to get fast fime? So it has to work with whatever is already
there anyways.
Go works fine with the current interface. There was, arguably, a bug
in Go's old implementation in that it assumed that the vDSO would have
a normal symbol table. That bug has already been fixed.
I think this issue started when some of the Go developers questioned
why the kernel needed to provide a very complex interface--parsing an
ELF shared shared library--for very simple functionality--looking up
the address of a magic function. This approach has required special
support not just in Go, but also in the dynamic linker and gdb, and
does not work well for statically linked binaries. The support in gdb
is perhaps a good idea, but elsewhere it does not make sense.
So why not provide a simple interface?
Ian