• Vincent Chen's avatar
    riscv: use vDSO common flow to reduce the latency of the time-related functions · ad5d1122
    Vincent Chen authored
    Even if RISC-V has supported the vDSO feature, the latency of the functions
    for obtaining the system time is still expensive. It is because these
    functions still trigger a corresponding system call in the process, which
    slows down the response time. If we want to remove the system call to
    reduce the latency, the kernel should have the ability to output the system
    clock information to userspace. This patch introduces the vDSO common flow
    to enable the kernel to achieve the above feature and uses "rdtime"
    instruction to obtain the current time in the user space. Under this
    condition, the latency cost by the ecall from U-mode to S-mode can be
    eliminated. After applying this patch, the latency of gettimeofday()
    measured on the HiFive unleashed board can be reduced by %61.
    Signed-off-by: default avatarVincent Chen <vincent.chen@sifive.com>
    Reviewed-by: default avatarAtish Patra <atish.patra@wdc.com>
    Signed-off-by: default avatarPalmer Dabbelt <palmerdabbelt@google.com>
    ad5d1122
vdso.h 996 Bytes