Thread (39 messages) 39 messages, 6 authors, 2014-06-20

Re: [RFC 0/2] __vdso_findsym

From: Rich Felker <hidden>
Date: 2014-06-16 14:57:38
Also in: lkml

On Mon, Jun 16, 2014 at 07:08:50AM -0700, Ian Lance Taylor wrote:
On Sun, Jun 15, 2014 at 7:36 PM, Andi Kleen [off-list ref] wrote:
quoted
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?
This is my sentiment as well, but I think you've stated it better than
I have.

Also note that, if the vdso is providing a "lookup the address of a
magic function by name" function, it need not be a full ELF parser,
i.e. it doesn't need to be able to deal with any ELF files except the
vdso provided by the current kernel. This probably allows the parser
to be considerably smaller; for example, all the version stuff can be
omitted unless the actual kernel in use provides multiple symbol
versions.

Rich
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help