LoongArch: vDSO: Use vdso/datapage.h to access vDSO datavdso/datapage.h provides symbols and functions to ease the access toshared vDSO data from both the kernel and the vDSO.Make use of it to si
LoongArch: vDSO: Use vdso/datapage.h to access vDSO datavdso/datapage.h provides symbols and functions to ease the access toshared vDSO data from both the kernel and the vDSO.Make use of it to simplify the current code and also prepare for furtherchanges unifying the vDSO data storage between architectures.Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>Signed-off-by: Thomas Gleixner <tglx@linutronix.de>Link: https://lore.kernel.org/all/20241010-vdso-generic-base-v1-8-b64f0842d512@linutronix.de
show more ...
LoongArch: vdso: Remove timekeeper includesSince the generic VDSO clock mode storage is used, this header file isunused and can be removed.This avoids including a non-VDSO header while building
LoongArch: vdso: Remove timekeeper includesSince the generic VDSO clock mode storage is used, this header file isunused and can be removed.This avoids including a non-VDSO header while building the VDSO,which can lead to compilation errors.Also drop the comment which is out of date and in the wrong place.Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>Signed-off-by: Thomas Gleixner <tglx@linutronix.de>Link: https://lore.kernel.org/all/20241010-vdso-generic-arch_update_vsyscall-v1-8-7fe5a3ea4382@linutronix.de
LoongArch: vDSO: Wire up getrandom() vDSO implementationHook up the generic vDSO implementation to the LoongArch vDSO data pageby providing the required __arch_chacha20_blocks_nostack,__arch_get_
LoongArch: vDSO: Wire up getrandom() vDSO implementationHook up the generic vDSO implementation to the LoongArch vDSO data pageby providing the required __arch_chacha20_blocks_nostack,__arch_get_k_vdso_rng_data, and getrandom_syscall implementations. Alsowire up the selftests.Signed-off-by: Xi Ruoyao <xry111@xry111.site>Acked-by: Huacai Chen <chenhuacai@kernel.org>Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
LoongArch: Add support to clone a time namespaceWe can see that "Time namespaces are not supported" on LoongArch:(1) clone3 test # cd tools/testing/selftests/clone3 && make && ./clone3 ...
LoongArch: Add support to clone a time namespaceWe can see that "Time namespaces are not supported" on LoongArch:(1) clone3 test # cd tools/testing/selftests/clone3 && make && ./clone3 ... # Time namespaces are not supported ok 18 # SKIP Skipping clone3() with CLONE_NEWTIME # Totals: pass:17 fail:0 xfail:0 xpass:0 skip:1 error:0(2) timens test # cd tools/testing/selftests/timens && make && ./timens ... 1..0 # SKIP Time namespaces are not supportedOn LoongArch the current kernel does not support CONFIG_TIME_NS whichdepends on GENERIC_VDSO_TIME_NS, select GENERIC_VDSO_TIME_NS to enableCONFIG_TIME_NS to build kernel/time/namespace.c.Additionally, it needs to define some arch-dependent functions for thetimens, such as __arch_get_timens_vdso_data(), arch_get_vdso_data() andvdso_join_timens().At the same time, modify the layout of vvar to use one page size forgeneric vdso data, expand another page size for timens vdso data andassign LOONGARCH_VDSO_DATA_SIZE (maybe exceeds a page size if expand inthe future) for loongarch vdso data, at last add the callback functionvvar_fault() and modify stack_top().With this patch under CONFIG_TIME_NS:(1) clone3 test # cd tools/testing/selftests/clone3 && make && ./clone3 ... ok 18 [739] Result (0) matches expectation (0) # Totals: pass:18 fail:0 xfail:0 xpass:0 skip:0 error:0(2) timens test # cd tools/testing/selftests/timens && make && ./timens ... # Totals: pass:10 fail:0 xfail:0 xpass:0 skip:0 error:0Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
LoongArch: Add vDSO syscall __vdso_getcpu()We test 20 million times of getcpu(), the real syscall version take 25seconds, while the vsyscall version take only 2.4 seconds.Signed-off-by: Rui Wang
LoongArch: Add vDSO syscall __vdso_getcpu()We test 20 million times of getcpu(), the real syscall version take 25seconds, while the vsyscall version take only 2.4 seconds.Signed-off-by: Rui Wang <wangrui@loongson.cn>Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
LoongArch: Add VDSO and VSYSCALL supportAdd VDSO and VSYSCALL support (sigreturn, gettimeofday and its friends)for LoongArch.Reviewed-by: WANG Xuerui <git@xen0n.name>Reviewed-by: Jiaxun Yang <j
LoongArch: Add VDSO and VSYSCALL supportAdd VDSO and VSYSCALL support (sigreturn, gettimeofday and its friends)for LoongArch.Reviewed-by: WANG Xuerui <git@xen0n.name>Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>