- vDSO allows frequently used system calls to run in userspace, avoiding kernel entry overhead.
- Time-related calls like gettimeofday and clock_gettime are often vDSO-accelerated.
- Despite vDSO being present, clock_gettime can still generate actual system calls for unsupported clock types.
- vDSO's clock_gettime only supports CLOCK_REALTIME, CLOCK_MONOTONIC, and their COARSE variants (as of Linux 3.13 to 4.11).
- CLOCK_MONOTONIC_RAW gained vDSO support in Linux 5.3; earlier versions fell back to a full syscall.
- The author discovered this issue while benchmarking dnsdist, causing millions of extra system calls.
- The blog post aims to help others quickly identify and resolve similar vDSO-related performance problems.