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 relatively safe calling them directly as a library function.
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.3 that identifies the commonalities in between the architectures and tries to consolidate the common code paths in a unified vDSO library.
The presentation will start with a generic introduction of the vDSO concepts for the benefit of that part of the audience not familiar with them, it will proceed covering some of the design choices, implementation details and issues encountered during the unification and it will conclude with an analysis of the achievements and of the possible future development.
Staff Kernel Engineer (ARM Ltd.)
Staff Kernel Engineer at ARM Ltd. currently working on enabling new ARM Architectural features in the Linux Kernel and acting as a vDSO co-maintainer. In past, I have been a Linaro assignee for LITE group working on the Zephyr project. In my 10 years of experience I have been involved in different projects related to Linux/Android.