linux-sg2042/arch
Vincent Chen ad5d1122b8
riscv: use vDSO common flow to reduce the latency of the time-related functions
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: Vincent Chen <vincent.chen@sifive.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
2020-06-10 19:47:16 -07:00
..
alpha Merge branch 'exec-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2020-06-04 14:07:08 -07:00
arc kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
arm ARM: DT changes for v5.8 2020-06-04 20:02:14 -07:00
arm64 ARM: DT changes for v5.8 2020-06-04 20:02:14 -07:00
c6x mm: free_area_init: use maximal zone PFNs rather than zone sizes 2020-06-03 20:09:43 -07:00
csky kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
h8300 h8300: remove usage of __ARCH_USE_5LEVEL_HACK 2020-06-04 19:06:20 -07:00
hexagon hexagon: remove __ARCH_USE_5LEVEL_HACK 2020-06-04 19:06:21 -07:00
ia64 ia64: add support for folded p4d page tables 2020-06-04 19:06:21 -07:00
m68k m68k: mm: simplify detection of memory zone boundaries 2020-06-03 20:09:43 -07:00
microblaze kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
mips kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
nds32 kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
nios2 nios2: add support for folded p4d page tables 2020-06-04 19:06:21 -07:00
openrisc openrisc: add support for folded p4d page tables 2020-06-04 19:06:21 -07:00
parisc parisc/kmap: remove duplicate kmap code 2020-06-04 19:06:22 -07:00
powerpc powerpc/pseries/hotplug-memory: stop checking is_mem_section_removable() 2020-06-04 19:06:23 -07:00
riscv riscv: use vDSO common flow to reduce the latency of the time-related functions 2020-06-10 19:47:16 -07:00
s390 Merge branch 'akpm' (patches from Andrew) 2020-06-04 19:18:29 -07:00
sh sh: add support for folded p4d page tables 2020-06-04 19:06:21 -07:00
sparc kmap: consolidate kmap_prot definitions 2020-06-04 19:06:22 -07:00
um Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching 2020-06-04 11:13:03 -07:00
unicore32 unicore32: remove __ARCH_USE_5LEVEL_HACK 2020-06-04 19:06:21 -07:00
x86 Misc changes: 2020-06-05 11:18:53 -07:00
xtensa arch/kmap: define kmap_atomic_prot() for all arch's 2020-06-04 19:06:22 -07:00
.gitignore
Kconfig scs: Remove references to asm/scs.h from core code 2020-05-18 17:47:45 +01:00