From: "H. Peter Anvin" <hpa@zytor.com>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Rich Felker <dalias@libc.org>,
Mikael Pettersson <mikpelinux@gmail.com>,
Russ Cox <rsc@golang.org>, Linux API <linux-api@vger.kernel.org>,
Ian Taylor <iant@golang.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
X86 ML <x86@kernel.org>
Subject: Re: [RFC 0/2] __vdso_findsym
Date: Sun, 15 Jun 2014 10:57:48 -0700 [thread overview]
Message-ID: <539DDE9C.3010903@zytor.com> (raw)
In-Reply-To: <CALCETrXTpkto2gJBiFC4CR5D=Lqf2YfP5BBH02f8hFW+TUGqeA@mail.gmail.com>
On 06/15/2014 10:40 AM, Andy Lutomirski wrote:
>
> To be clear, I have no desire whatsoever to give the vdso an actual
> ELF parser or anything else that userspace should be providing itself.
> I think that a special-purpose vdso parser in the vdso makes some
> sense, though, since userspace might otherwise provide one for the
> sole purpose of parsing the vdso.
>
> And there's plenty of reasons that having the vdso be an ELF image is
> useful. For one thing, gdb can take advantage of it. For another,
> CRIU is parsing it for a rather different reason, and something like
> __vdso_findsym won't fill that need.
>
> Also, given the general lack of a comprehensible specification of what
> the GNU flavor of the ELF format actually is [1], there's something to
> be said for reducing the proliferation of ELF parsers. glibc and
> binutils are quite unlikely to become incompatible with each other,
> but I sincerely doubt that anyone from binutils land is likely to
> review (and maintain!) my ELF parser, Go's, or a hypothetical future
> ELF parser from any of the other glibc-less things. If those things
> use one that's in the kernel, then it's easy for the kernel to
> guarantee that each vdso image can successfully parse itself.
>
> [1] The only comprehensible description of the GNU hash extension that
> I could find is on Oracle's blog (!)
>
Yes, but that is why we provide the standard SysV hash. The GNU hash is
not too bad, but you're absolutely right the documentation stinks.
Providing a simple symbol lookup is an opportunistic thing, and might be
useful that way, and only because (as you say) the version in the vdso
would only need to be guaranteed to parse a single data structure --
that same vdso.
On the other hand, it better work, correctly, in every version of the
kernel, so I believe it will need to be done such that it is either
correct by construction or gets self-tested during the build process so
it errors out on failure. One simple way to do correct by construction
would be to do the "vdso entry point by index" -- a new kind of system
call numbers, in effect, as much as it has shades of Windows DLL with
their "ordinal numbers".
-hpa
next prev parent reply other threads:[~2014-06-15 17:58 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-14 18:16 [RFC 0/2] __vdso_findsym Andy Lutomirski
2014-06-14 18:16 ` [RFC 1/2] uapi: Add some missing dynamic table-related definitions to elf.h Andy Lutomirski
2014-06-14 18:16 ` [RFC 2/2] [NOT READY] x86/vdso: Add __vdso_findsym Andy Lutomirski
2014-06-14 21:30 ` [RFC 0/2] __vdso_findsym Rich Felker
2014-06-14 22:38 ` Andy Lutomirski
2014-06-14 23:36 ` H. Peter Anvin
2014-06-15 3:59 ` H. Peter Anvin
2014-06-15 6:49 ` Andy Lutomirski
2014-06-15 14:25 ` Mikael Pettersson
2014-06-15 14:35 ` Rich Felker
2014-06-15 15:47 ` Andy Lutomirski
2014-06-15 17:05 ` H. Peter Anvin
2014-06-15 17:40 ` Andy Lutomirski
2014-06-15 17:57 ` H. Peter Anvin [this message]
2014-06-15 18:20 ` Andy Lutomirski
2014-06-15 18:39 ` H. Peter Anvin
2014-06-15 18:54 ` Andy Lutomirski
2014-06-15 19:14 ` H. Peter Anvin
2014-06-15 19:22 ` Ian Lance Taylor
2014-06-15 19:31 ` H. Peter Anvin
2014-06-15 19:50 ` Ian Lance Taylor
2014-06-15 19:56 ` H. Peter Anvin
2014-06-15 20:53 ` Andy Lutomirski
2014-06-15 21:13 ` H. Peter Anvin
2014-06-16 0:55 ` Rich Felker
2014-06-16 2:36 ` Andi Kleen
2014-06-16 3:49 ` Rich Felker
2014-06-16 14:08 ` Ian Lance Taylor
2014-06-16 14:38 ` Andi Kleen
2014-06-16 14:58 ` Rich Felker
2014-06-16 15:31 ` Ian Lance Taylor
2014-06-16 15:42 ` Rich Felker
2014-06-20 15:55 ` Andy Lutomirski
2014-06-20 16:07 ` Rich Felker
2014-06-16 14:56 ` Rich Felker
2014-06-15 18:20 ` H. Peter Anvin
2014-06-15 18:22 ` Andy Lutomirski
2014-06-16 6:39 ` Rich Felker
2014-06-16 1:06 ` Rich Felker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=539DDE9C.3010903@zytor.com \
--to=hpa@zytor.com \
--cc=dalias@libc.org \
--cc=iant@golang.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mikpelinux@gmail.com \
--cc=rsc@golang.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox