From: Vincenzo Frascino <vincenzo.frascino@arm.com> To: linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, clang-built-linux@googlegroups.com, x86@kernel.org Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Arnd Bergmann <arnd@arndb.de>, Russell King <linux@armlinux.org.uk>, Paul Burton <paul.burton@mips.com>, Thomas Gleixner <tglx@linutronix.de>, Andy Lutomirski <luto@kernel.org>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Stephen Boyd <sboyd@kernel.org>, Mark Salyzyn <salyzyn@android.com>, Kees Cook <keescook@chromium.org>, Peter Collingbourne <pcc@google.com>, Dmitry Safonov <0x7f454c46@gmail.com>, Andrei Vagin <avagin@openvz.org>, Nick Desaulniers <ndesaulniers@google.com>, Marc Zyngier <maz@kernel.org>, Mark Rutland <Mark.Rutland@arm.com>, Will Deacon <will@kernel.org> Subject: [PATCH v3 21/26] arm64: Introduce asm/vdso/arch_timer.h Date: Fri, 13 Mar 2020 15:43:40 +0000 [thread overview] Message-ID: <20200313154345.56760-22-vincenzo.frascino@arm.com> (raw) In-Reply-To: <20200313154345.56760-1-vincenzo.frascino@arm.com> The vDSO library should only include the necessary headers required for a userspace library (UAPI and a minimal set of kernel headers). To make this possible it is necessary to isolate from the kernel headers the common parts that are strictly necessary to build the library. Introduce asm/vdso/arch_timer.h to contain all the arm64 specific code. This allows to replace the second isb() in __arch_get_hw_counter() with a fake dependent stack read of the counter which improves the vdso library peformances of ~4.5%. Below the results of vdsotest [1] ran for 100 iterations. Before the patch: ================= clock-gettime-monotonic: syscall: 771 nsec/call clock-gettime-monotonic: libc: 130 nsec/call clock-gettime-monotonic: vdso: 111 nsec/call ... clock-gettime-realtime: syscall: 762 nsec/call clock-gettime-realtime: libc: 130 nsec/call clock-gettime-realtime: vdso: 111 nsec/call After the patch: ================ clock-gettime-monotonic: syscall: 792 nsec/call clock-gettime-monotonic: libc: 124 nsec/call clock-gettime-monotonic: vdso: 106 nsec/call ... clock-gettime-realtime: syscall: 776 nsec/call clock-gettime-realtime: libc: 124 nsec/call clock-gettime-realtime: vdso: 106 nsec/call [1] https://github.com/nathanlynch/vdsotest Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Marc Zyngier <maz@kernel.org> Cc: Mark Rutland <Mark.Rutland@arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- arch/arm64/include/asm/arch_timer.h | 29 ++++--------------- arch/arm64/include/asm/vdso/arch_timer.h | 33 ++++++++++++++++++++++ arch/arm64/include/asm/vdso/gettimeofday.h | 7 +++-- 3 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 arch/arm64/include/asm/vdso/arch_timer.h diff --git a/arch/arm64/include/asm/arch_timer.h b/arch/arm64/include/asm/arch_timer.h index 7ae54d7d333a..7f22cd00ad45 100644 --- a/arch/arm64/include/asm/arch_timer.h +++ b/arch/arm64/include/asm/arch_timer.h @@ -164,24 +164,7 @@ static inline void arch_timer_set_cntkctl(u32 cntkctl) isb(); } -/* - * Ensure that reads of the counter are treated the same as memory reads - * for the purposes of ordering by subsequent memory barriers. - * - * This insanity brought to you by speculative system register reads, - * out-of-order memory accesses, sequence locks and Thomas Gleixner. - * - * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html - */ -#define arch_counter_enforce_ordering(val) do { \ - u64 tmp, _val = (val); \ - \ - asm volatile( \ - " eor %0, %1, %1\n" \ - " add %0, sp, %0\n" \ - " ldr xzr, [%0]" \ - : "=r" (tmp) : "r" (_val)); \ -} while (0) +#include <asm/vdso/arch_timer.h> static __always_inline u64 __arch_counter_get_cntpct_stable(void) { @@ -189,7 +172,7 @@ static __always_inline u64 __arch_counter_get_cntpct_stable(void) isb(); cnt = arch_timer_reg_read_stable(cntpct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } @@ -199,7 +182,7 @@ static __always_inline u64 __arch_counter_get_cntpct(void) isb(); cnt = read_sysreg(cntpct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } @@ -209,7 +192,7 @@ static __always_inline u64 __arch_counter_get_cntvct_stable(void) isb(); cnt = arch_timer_reg_read_stable(cntvct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } @@ -219,12 +202,10 @@ static __always_inline u64 __arch_counter_get_cntvct(void) isb(); cnt = read_sysreg(cntvct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } -#undef arch_counter_enforce_ordering - static inline int arch_timer_arch_init(void) { return 0; diff --git a/arch/arm64/include/asm/vdso/arch_timer.h b/arch/arm64/include/asm/vdso/arch_timer.h new file mode 100644 index 000000000000..a71bc83232f5 --- /dev/null +++ b/arch/arm64/include/asm/vdso/arch_timer.h @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (C) 2020 ARM Ltd. + */ +#ifndef __ASM_VDSO_ARCH_TIMER_H +#define __ASM_VDSO_ARCH_TIMER_H + +#include <uapi/linux/types.h> + +/* + * Ensure that reads of the counter are treated the same as memory reads + * for the purposes of ordering by subsequent memory barriers. + * + * This insanity brought to you by speculative system register reads, + * out-of-order memory accesses, sequence locks and Thomas Gleixner. + * + * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html + * + */ +static u64 arch_counter_enforce_ordering(u64 val) +{ + u64 tmp, _val = (val); + + asm volatile( + " eor %0, %1, %1\n" + " add %0, sp, %0\n" + " ldr xzr, [%0]" + : "=r" (tmp) : "r" (_val)); + + return _val; +} + +#endif /* __ASM_VDSO_ARCH_TIMER_H */ diff --git a/arch/arm64/include/asm/vdso/gettimeofday.h b/arch/arm64/include/asm/vdso/gettimeofday.h index afba6ba332f8..319808106625 100644 --- a/arch/arm64/include/asm/vdso/gettimeofday.h +++ b/arch/arm64/include/asm/vdso/gettimeofday.h @@ -8,6 +8,7 @@ #ifndef __ASSEMBLY__ #include <asm/unistd.h> +#include <asm/vdso/arch_timer.h> #define VDSO_HAS_CLOCK_GETRES 1 @@ -82,10 +83,10 @@ static __always_inline u64 __arch_get_hw_counter(s32 clock_mode) isb(); asm volatile("mrs %0, cntvct_el0" : "=r" (res) :: "memory"); /* - * This isb() is required to prevent that the seq lock is - * speculated.# + * arch_counter_enforce_ordering() is required to prevent that + * the seq lock is speculated. */ - isb(); + res = arch_counter_enforce_ordering(res); return res; } -- 2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Vincenzo Frascino <vincenzo.frascino@arm.com> To: linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, clang-built-linux@googlegroups.com, x86@kernel.org Cc: Mark Rutland <Mark.Rutland@arm.com>, Nick Desaulniers <ndesaulniers@google.com>, Dmitry Safonov <0x7f454c46@gmail.com>, Kees Cook <keescook@chromium.org>, Arnd Bergmann <arnd@arndb.de>, Stephen Boyd <sboyd@kernel.org>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will.deacon@arm.com>, Russell King <linux@armlinux.org.uk>, Mark Salyzyn <salyzyn@android.com>, Paul Burton <paul.burton@mips.com>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, Andy Lutomirski <luto@kernel.org>, Marc Zyngier <maz@kernel.org>, Will Deacon <will@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Vincenzo Frascino <vincenzo.frascino@arm.com>, Peter Collingbourne <pcc@google.com>, Andrei Vagin <avagin@openvz.org> Subject: [PATCH v3 21/26] arm64: Introduce asm/vdso/arch_timer.h Date: Fri, 13 Mar 2020 15:43:40 +0000 [thread overview] Message-ID: <20200313154345.56760-22-vincenzo.frascino@arm.com> (raw) In-Reply-To: <20200313154345.56760-1-vincenzo.frascino@arm.com> The vDSO library should only include the necessary headers required for a userspace library (UAPI and a minimal set of kernel headers). To make this possible it is necessary to isolate from the kernel headers the common parts that are strictly necessary to build the library. Introduce asm/vdso/arch_timer.h to contain all the arm64 specific code. This allows to replace the second isb() in __arch_get_hw_counter() with a fake dependent stack read of the counter which improves the vdso library peformances of ~4.5%. Below the results of vdsotest [1] ran for 100 iterations. Before the patch: ================= clock-gettime-monotonic: syscall: 771 nsec/call clock-gettime-monotonic: libc: 130 nsec/call clock-gettime-monotonic: vdso: 111 nsec/call ... clock-gettime-realtime: syscall: 762 nsec/call clock-gettime-realtime: libc: 130 nsec/call clock-gettime-realtime: vdso: 111 nsec/call After the patch: ================ clock-gettime-monotonic: syscall: 792 nsec/call clock-gettime-monotonic: libc: 124 nsec/call clock-gettime-monotonic: vdso: 106 nsec/call ... clock-gettime-realtime: syscall: 776 nsec/call clock-gettime-realtime: libc: 124 nsec/call clock-gettime-realtime: vdso: 106 nsec/call [1] https://github.com/nathanlynch/vdsotest Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Marc Zyngier <maz@kernel.org> Cc: Mark Rutland <Mark.Rutland@arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- arch/arm64/include/asm/arch_timer.h | 29 ++++--------------- arch/arm64/include/asm/vdso/arch_timer.h | 33 ++++++++++++++++++++++ arch/arm64/include/asm/vdso/gettimeofday.h | 7 +++-- 3 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 arch/arm64/include/asm/vdso/arch_timer.h diff --git a/arch/arm64/include/asm/arch_timer.h b/arch/arm64/include/asm/arch_timer.h index 7ae54d7d333a..7f22cd00ad45 100644 --- a/arch/arm64/include/asm/arch_timer.h +++ b/arch/arm64/include/asm/arch_timer.h @@ -164,24 +164,7 @@ static inline void arch_timer_set_cntkctl(u32 cntkctl) isb(); } -/* - * Ensure that reads of the counter are treated the same as memory reads - * for the purposes of ordering by subsequent memory barriers. - * - * This insanity brought to you by speculative system register reads, - * out-of-order memory accesses, sequence locks and Thomas Gleixner. - * - * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html - */ -#define arch_counter_enforce_ordering(val) do { \ - u64 tmp, _val = (val); \ - \ - asm volatile( \ - " eor %0, %1, %1\n" \ - " add %0, sp, %0\n" \ - " ldr xzr, [%0]" \ - : "=r" (tmp) : "r" (_val)); \ -} while (0) +#include <asm/vdso/arch_timer.h> static __always_inline u64 __arch_counter_get_cntpct_stable(void) { @@ -189,7 +172,7 @@ static __always_inline u64 __arch_counter_get_cntpct_stable(void) isb(); cnt = arch_timer_reg_read_stable(cntpct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } @@ -199,7 +182,7 @@ static __always_inline u64 __arch_counter_get_cntpct(void) isb(); cnt = read_sysreg(cntpct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } @@ -209,7 +192,7 @@ static __always_inline u64 __arch_counter_get_cntvct_stable(void) isb(); cnt = arch_timer_reg_read_stable(cntvct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } @@ -219,12 +202,10 @@ static __always_inline u64 __arch_counter_get_cntvct(void) isb(); cnt = read_sysreg(cntvct_el0); - arch_counter_enforce_ordering(cnt); + cnt = arch_counter_enforce_ordering(cnt); return cnt; } -#undef arch_counter_enforce_ordering - static inline int arch_timer_arch_init(void) { return 0; diff --git a/arch/arm64/include/asm/vdso/arch_timer.h b/arch/arm64/include/asm/vdso/arch_timer.h new file mode 100644 index 000000000000..a71bc83232f5 --- /dev/null +++ b/arch/arm64/include/asm/vdso/arch_timer.h @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (C) 2020 ARM Ltd. + */ +#ifndef __ASM_VDSO_ARCH_TIMER_H +#define __ASM_VDSO_ARCH_TIMER_H + +#include <uapi/linux/types.h> + +/* + * Ensure that reads of the counter are treated the same as memory reads + * for the purposes of ordering by subsequent memory barriers. + * + * This insanity brought to you by speculative system register reads, + * out-of-order memory accesses, sequence locks and Thomas Gleixner. + * + * http://lists.infradead.org/pipermail/linux-arm-kernel/2019-February/631195.html + * + */ +static u64 arch_counter_enforce_ordering(u64 val) +{ + u64 tmp, _val = (val); + + asm volatile( + " eor %0, %1, %1\n" + " add %0, sp, %0\n" + " ldr xzr, [%0]" + : "=r" (tmp) : "r" (_val)); + + return _val; +} + +#endif /* __ASM_VDSO_ARCH_TIMER_H */ diff --git a/arch/arm64/include/asm/vdso/gettimeofday.h b/arch/arm64/include/asm/vdso/gettimeofday.h index afba6ba332f8..319808106625 100644 --- a/arch/arm64/include/asm/vdso/gettimeofday.h +++ b/arch/arm64/include/asm/vdso/gettimeofday.h @@ -8,6 +8,7 @@ #ifndef __ASSEMBLY__ #include <asm/unistd.h> +#include <asm/vdso/arch_timer.h> #define VDSO_HAS_CLOCK_GETRES 1 @@ -82,10 +83,10 @@ static __always_inline u64 __arch_get_hw_counter(s32 clock_mode) isb(); asm volatile("mrs %0, cntvct_el0" : "=r" (res) :: "memory"); /* - * This isb() is required to prevent that the seq lock is - * speculated.# + * arch_counter_enforce_ordering() is required to prevent that + * the seq lock is speculated. */ - isb(); + res = arch_counter_enforce_ordering(res); return res; } -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-03-13 15:45 UTC|newest] Thread overview: 133+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-13 15:43 [PATCH v3 00/26] Introduce common headers for vDSO Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 01/26] linux/const.h: Extract common header " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 02/26] linux/bits.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 03/26] linux/limits.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 04/26] x86:Introduce asm/vdso/clocksource.h Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 05/26] arm: Introduce asm/vdso/clocksource.h Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 06/26] arm64: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-15 18:29 ` Catalin Marinas 2020-03-15 18:29 ` Catalin Marinas 2020-03-15 18:29 ` Catalin Marinas 2020-03-13 15:43 ` [PATCH v3 07/26] mips: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 08/26] linux/clocksource.h: Extract common header for vDSO Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 09/26] linux/math64.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 10/26] linux/time.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 11/26] linux/time32.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 12/26] linux/time64.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 13/26] linux/jiffies.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 14/26] linux/ktime.h: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 15/26] common: Introduce processor.h Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 16/26] scripts: Fix the inclusion order in modpost Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 17/26] linux/elfnote.h: Replace elf.h with UAPI equivalent Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 18/26] arm64: Introduce asm/vdso/processor.h Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-15 18:30 ` Catalin Marinas 2020-03-15 18:30 ` Catalin Marinas 2020-03-15 18:30 ` Catalin Marinas 2020-03-16 9:42 ` Vincenzo Frascino 2020-03-16 9:42 ` Vincenzo Frascino 2020-03-16 9:42 ` Vincenzo Frascino 2020-03-16 10:22 ` Mark Rutland 2020-03-16 10:22 ` Mark Rutland 2020-03-16 10:22 ` Mark Rutland 2020-03-16 10:26 ` Catalin Marinas 2020-03-16 10:26 ` Catalin Marinas 2020-03-16 10:26 ` Catalin Marinas 2020-03-16 10:29 ` Mark Rutland 2020-03-16 10:29 ` Mark Rutland 2020-03-16 10:29 ` Mark Rutland 2020-03-16 10:30 ` Vincenzo Frascino 2020-03-16 10:30 ` Vincenzo Frascino 2020-03-16 10:30 ` Vincenzo Frascino 2020-03-16 10:29 ` Vincenzo Frascino 2020-03-16 10:29 ` Vincenzo Frascino 2020-03-16 10:29 ` Vincenzo Frascino 2020-03-16 10:34 ` Catalin Marinas 2020-03-16 10:34 ` Catalin Marinas 2020-03-16 10:34 ` Catalin Marinas 2020-03-16 10:55 ` Vincenzo Frascino 2020-03-16 10:55 ` Vincenzo Frascino 2020-03-16 10:55 ` Vincenzo Frascino 2020-03-16 11:22 ` Catalin Marinas 2020-03-16 11:22 ` Catalin Marinas 2020-03-16 11:22 ` Catalin Marinas 2020-03-16 13:35 ` Vincenzo Frascino 2020-03-16 13:35 ` Vincenzo Frascino 2020-03-16 13:35 ` Vincenzo Frascino 2020-03-16 14:43 ` Catalin Marinas 2020-03-16 14:43 ` Catalin Marinas 2020-03-16 14:43 ` Catalin Marinas 2020-03-16 15:33 ` Vincenzo Frascino 2020-03-16 15:33 ` Vincenzo Frascino 2020-03-16 15:33 ` Vincenzo Frascino 2020-03-16 15:49 ` Catalin Marinas 2020-03-16 15:49 ` Catalin Marinas 2020-03-16 15:49 ` Catalin Marinas 2020-03-16 16:05 ` Vincenzo Frascino 2020-03-16 16:05 ` Vincenzo Frascino 2020-03-16 16:05 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 19/26] arm64: vdso: Include common headers in the vdso library Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-15 18:30 ` Catalin Marinas 2020-03-15 18:30 ` Catalin Marinas 2020-03-15 18:30 ` Catalin Marinas 2020-03-13 15:43 ` [PATCH v3 20/26] arm64: vdso32: " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-15 18:30 ` Catalin Marinas 2020-03-15 18:30 ` Catalin Marinas 2020-03-15 18:30 ` Catalin Marinas 2020-03-13 15:43 ` Vincenzo Frascino [this message] 2020-03-13 15:43 ` [PATCH v3 21/26] arm64: Introduce asm/vdso/arch_timer.h Vincenzo Frascino 2020-03-15 18:32 ` Catalin Marinas 2020-03-15 18:32 ` Catalin Marinas 2020-03-15 18:32 ` Catalin Marinas 2020-03-16 15:37 ` Vincenzo Frascino 2020-03-16 15:37 ` Vincenzo Frascino 2020-03-16 15:37 ` Vincenzo Frascino 2020-04-09 13:26 ` Will Deacon 2020-04-09 13:26 ` Will Deacon 2020-04-09 13:26 ` Will Deacon 2020-04-09 13:36 ` Vincenzo Frascino 2020-04-09 13:36 ` Vincenzo Frascino 2020-04-09 13:36 ` Vincenzo Frascino 2020-03-16 10:28 ` Mark Rutland 2020-03-16 10:28 ` Mark Rutland 2020-03-16 10:28 ` Mark Rutland 2020-03-13 15:43 ` [PATCH v3 22/26] mips: vdso: Enable mips to use common headers Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 23/26] x86: vdso: Enable x86 " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 24/26] arm: vdso: Enable arm " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 25/26] lib: vdso: Enable " Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` [PATCH v3 26/26] arm64: vdso32: Enable Clang Compilation Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-13 15:43 ` Vincenzo Frascino 2020-03-16 9:17 ` Catalin Marinas 2020-03-16 9:17 ` Catalin Marinas 2020-03-16 9:17 ` Catalin Marinas 2020-03-13 16:19 ` [PATCH v3 00/26] Introduce common headers for vDSO Dmitry Safonov 2020-03-13 16:19 ` Dmitry Safonov 2020-03-15 10:02 ` Thomas Gleixner 2020-03-15 10:02 ` Thomas Gleixner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200313154345.56760-22-vincenzo.frascino@arm.com \ --to=vincenzo.frascino@arm.com \ --cc=0x7f454c46@gmail.com \ --cc=Mark.Rutland@arm.com \ --cc=arnd@arndb.de \ --cc=avagin@openvz.org \ --cc=bp@alien8.de \ --cc=catalin.marinas@arm.com \ --cc=clang-built-linux@googlegroups.com \ --cc=keescook@chromium.org \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mips@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=luto@kernel.org \ --cc=maz@kernel.org \ --cc=mingo@redhat.com \ --cc=ndesaulniers@google.com \ --cc=paul.burton@mips.com \ --cc=pcc@google.com \ --cc=salyzyn@android.com \ --cc=sboyd@kernel.org \ --cc=tglx@linutronix.de \ --cc=will.deacon@arm.com \ --cc=will@kernel.org \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.