97f26cab45
This ABI is not following the format described at ABI/README. Use it, filling in the blanks with the git log that added it, and using the current e-mail from Andy. Acked-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/28c7cf3a71e15fb7499b70ec8f38c2efaaf4add2.1604042072.git.mchehab+huawei@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
36 lines
1.4 KiB
Plaintext
36 lines
1.4 KiB
Plaintext
What: vDSO
|
|
Date: July 2011
|
|
KernelVersion: 3.0
|
|
Contact: Andy Lutomirski <luto@kernel.org>
|
|
Description:
|
|
|
|
On some architectures, when the kernel loads any userspace program it
|
|
maps an ELF DSO into that program's address space. This DSO is called
|
|
the vDSO and it often contains useful and highly-optimized alternatives
|
|
to real syscalls.
|
|
|
|
These functions are called just like ordinary C function according to
|
|
your platform's ABI. Call them from a sensible context. (For example,
|
|
if you set CS on x86 to something strange, the vDSO functions are
|
|
within their rights to crash.) In addition, if you pass a bad
|
|
pointer to a vDSO function, you might get SIGSEGV instead of -EFAULT.
|
|
|
|
To find the DSO, parse the auxiliary vector passed to the program's
|
|
entry point. The AT_SYSINFO_EHDR entry will point to the vDSO.
|
|
|
|
The vDSO uses symbol versioning; whenever you request a symbol from the
|
|
vDSO, specify the version you are expecting.
|
|
|
|
Programs that dynamically link to glibc will use the vDSO automatically.
|
|
Otherwise, you can use the reference parser in
|
|
tools/testing/selftests/vDSO/parse_vdso.c.
|
|
|
|
Unless otherwise noted, the set of symbols with any given version and the
|
|
ABI of those symbols is considered stable. It may vary across architectures,
|
|
though.
|
|
|
|
Note:
|
|
As of this writing, this ABI documentation as been confirmed for x86_64.
|
|
The maintainers of the other vDSO-using architectures should confirm
|
|
that it is correct for their architecture.
|