vDSO (virtual dynamic shared object) is a mechanism that the Linux kernel
provides as an alternative to system calls to reduce, where meaningful, the
costs in terms of cycles.
This is possible because certain syscalls like gettimeofday() do not write any
data and return one or more values that are provided by the kernel, which makes
calling them directly as a library function relatively safe.
Even if the mechanism is pretty much standard, every architecture in the last
few years ended up implementing its own vDSO library in the architectural code.
The purpose of this presentation is to examine the approach adopted from Linux
5.2 that identifies the commonalities between the architectures and tries to
consolidate the common code paths in a unified vDSO library.
The presentation will start with a generic introduction to the vDSO concepts,
it will proceed to cover some of the design choices, implementation details and
issues encountered during the unification and it will conclude with an analysis
of the possible future development (e.g. addition of new architectures, new
syscalls conversions, new possible features, etc.).
|I agree to abide by the anti-harassment policy||I agree|