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>
show more ...
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>