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>, Will Deacon <will@kernel.org> Subject: [PATCH v2 12/20] arm64: Introduce asm/common/processor.h Date: Fri, 6 Mar 2020 13:32:34 +0000 [thread overview] Message-ID: <20200306133242.26279-13-vincenzo.frascino@arm.com> (raw) In-Reply-To: <20200306133242.26279-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/common/processor.h to contain all the arm64 specific functions that are suitable for vDSO inclusion. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- arch/arm64/include/asm/common/processor.h | 31 +++++++++++++++++++++++ arch/arm64/include/asm/processor.h | 16 ++---------- 2 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 arch/arm64/include/asm/common/processor.h diff --git a/arch/arm64/include/asm/common/processor.h b/arch/arm64/include/asm/common/processor.h new file mode 100644 index 000000000000..d02b0f392923 --- /dev/null +++ b/arch/arm64/include/asm/common/processor.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (C) 2020 ARM Ltd. + */ +#ifndef __ASM_COMMON_PROCESSOR_H +#define __ASM_COMMON_PROCESSOR_H + +#ifndef __ASSEMBLY__ + +#include <asm/page-def.h> + +#ifdef CONFIG_COMPAT +#if defined(CONFIG_ARM64_64K_PAGES) && defined(CONFIG_KUSER_HELPERS) +/* + * With CONFIG_ARM64_64K_PAGES enabled, the last page is occupied + * by the compat vectors page. + */ +#define TASK_SIZE_32 UL(0x100000000) +#else +#define TASK_SIZE_32 (UL(0x100000000) - PAGE_SIZE) +#endif /* CONFIG_ARM64_64K_PAGES */ +#endif /* CONFIG_COMPAT */ + +static inline void cpu_relax(void) +{ + asm volatile("yield" ::: "memory"); +} + +#endif /* __ASSEMBLY__ */ + +#endif /* __ASM_COMMON_PROCESSOR_H */ diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index 5ba63204d078..2866afc33f24 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h @@ -28,6 +28,8 @@ #include <linux/string.h> #include <linux/thread_info.h> +#include <common/processor.h> + #include <asm/alternative.h> #include <asm/cpufeature.h> #include <asm/hw_breakpoint.h> @@ -47,15 +49,6 @@ #define TASK_SIZE_64 (UL(1) << vabits_actual) #ifdef CONFIG_COMPAT -#if defined(CONFIG_ARM64_64K_PAGES) && defined(CONFIG_KUSER_HELPERS) -/* - * With CONFIG_ARM64_64K_PAGES enabled, the last page is occupied - * by the compat vectors page. - */ -#define TASK_SIZE_32 UL(0x100000000) -#else -#define TASK_SIZE_32 (UL(0x100000000) - PAGE_SIZE) -#endif /* CONFIG_ARM64_64K_PAGES */ #define TASK_SIZE (test_thread_flag(TIF_32BIT) ? \ TASK_SIZE_32 : TASK_SIZE_64) #define TASK_SIZE_OF(tsk) (test_tsk_thread_flag(tsk, TIF_32BIT) ? \ @@ -256,11 +249,6 @@ extern void release_thread(struct task_struct *); unsigned long get_wchan(struct task_struct *p); -static inline void cpu_relax(void) -{ - asm volatile("yield" ::: "memory"); -} - /* Thread switching */ extern struct task_struct *cpu_switch_to(struct task_struct *prev, struct task_struct *next); -- 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: Will Deacon <will@kernel.org>, 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>, Thomas Gleixner <tglx@linutronix.de>, Vincenzo Frascino <vincenzo.frascino@arm.com>, Peter Collingbourne <pcc@google.com>, Andrei Vagin <avagin@openvz.org> Subject: [PATCH v2 12/20] arm64: Introduce asm/common/processor.h Date: Fri, 6 Mar 2020 13:32:34 +0000 [thread overview] Message-ID: <20200306133242.26279-13-vincenzo.frascino@arm.com> (raw) In-Reply-To: <20200306133242.26279-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/common/processor.h to contain all the arm64 specific functions that are suitable for vDSO inclusion. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> --- arch/arm64/include/asm/common/processor.h | 31 +++++++++++++++++++++++ arch/arm64/include/asm/processor.h | 16 ++---------- 2 files changed, 33 insertions(+), 14 deletions(-) create mode 100644 arch/arm64/include/asm/common/processor.h diff --git a/arch/arm64/include/asm/common/processor.h b/arch/arm64/include/asm/common/processor.h new file mode 100644 index 000000000000..d02b0f392923 --- /dev/null +++ b/arch/arm64/include/asm/common/processor.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (C) 2020 ARM Ltd. + */ +#ifndef __ASM_COMMON_PROCESSOR_H +#define __ASM_COMMON_PROCESSOR_H + +#ifndef __ASSEMBLY__ + +#include <asm/page-def.h> + +#ifdef CONFIG_COMPAT +#if defined(CONFIG_ARM64_64K_PAGES) && defined(CONFIG_KUSER_HELPERS) +/* + * With CONFIG_ARM64_64K_PAGES enabled, the last page is occupied + * by the compat vectors page. + */ +#define TASK_SIZE_32 UL(0x100000000) +#else +#define TASK_SIZE_32 (UL(0x100000000) - PAGE_SIZE) +#endif /* CONFIG_ARM64_64K_PAGES */ +#endif /* CONFIG_COMPAT */ + +static inline void cpu_relax(void) +{ + asm volatile("yield" ::: "memory"); +} + +#endif /* __ASSEMBLY__ */ + +#endif /* __ASM_COMMON_PROCESSOR_H */ diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h index 5ba63204d078..2866afc33f24 100644 --- a/arch/arm64/include/asm/processor.h +++ b/arch/arm64/include/asm/processor.h @@ -28,6 +28,8 @@ #include <linux/string.h> #include <linux/thread_info.h> +#include <common/processor.h> + #include <asm/alternative.h> #include <asm/cpufeature.h> #include <asm/hw_breakpoint.h> @@ -47,15 +49,6 @@ #define TASK_SIZE_64 (UL(1) << vabits_actual) #ifdef CONFIG_COMPAT -#if defined(CONFIG_ARM64_64K_PAGES) && defined(CONFIG_KUSER_HELPERS) -/* - * With CONFIG_ARM64_64K_PAGES enabled, the last page is occupied - * by the compat vectors page. - */ -#define TASK_SIZE_32 UL(0x100000000) -#else -#define TASK_SIZE_32 (UL(0x100000000) - PAGE_SIZE) -#endif /* CONFIG_ARM64_64K_PAGES */ #define TASK_SIZE (test_thread_flag(TIF_32BIT) ? \ TASK_SIZE_32 : TASK_SIZE_64) #define TASK_SIZE_OF(tsk) (test_tsk_thread_flag(tsk, TIF_32BIT) ? \ @@ -256,11 +249,6 @@ extern void release_thread(struct task_struct *); unsigned long get_wchan(struct task_struct *p); -static inline void cpu_relax(void) -{ - asm volatile("yield" ::: "memory"); -} - /* Thread switching */ extern struct task_struct *cpu_switch_to(struct task_struct *prev, struct task_struct *next); -- 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-06 13:33 UTC|newest] Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-03-06 13:32 [PATCH v2 00/20] Introduce common headers Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 01/20] linux/const.h: Extract common header for vDSO Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 02/20] linux/bits.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 03/20] linux/limits.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 04/20] linux/math64.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 05/20] linux/time.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 06/20] linux/time32.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 07/20] linux/time64.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 08/20] linux/jiffies.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 09/20] linux/ktime.h: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 10/20] common: Introduce processor.h Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 11/20] linux/elfnote.h: Replace elf.h with UAPI equivalent Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-07 1:21 ` kbuild test robot 2020-03-07 1:21 ` kbuild test robot 2020-03-07 1:21 ` kbuild test robot 2020-03-06 13:32 ` Vincenzo Frascino [this message] 2020-03-06 13:32 ` [PATCH v2 12/20] arm64: Introduce asm/common/processor.h Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 13/20] arm64: vdso: Include common headers in the vdso library Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 14/20] arm64: vdso32: " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 15/20] arm64: Introduce asm/common/arch_timer.h Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 16/20] mips: vdso: Enable mips to use common headers Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 17/20] x86: vdso: Enable x86 " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 18/20] arm: vdso: Enable arm " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 19/20] lib: vdso: Enable " Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-06 13:32 ` [PATCH v2 20/20] arm64: vdso32: Enable Clang Compilation Vincenzo Frascino 2020-03-06 13:32 ` Vincenzo Frascino 2020-03-10 1:40 ` Nathan Chancellor 2020-03-10 1:40 ` Nathan Chancellor 2020-03-10 1:40 ` Nathan Chancellor 2020-03-13 12:01 ` Vincenzo Frascino 2020-03-13 12:01 ` Vincenzo Frascino 2020-03-13 12:01 ` Vincenzo Frascino 2020-03-06 16:04 ` [PATCH v2 00/20] Introduce common headers Andy Lutomirski 2020-03-06 16:04 ` Andy Lutomirski 2020-03-09 11:07 ` Vincenzo Frascino 2020-03-09 11:07 ` Vincenzo Frascino 2020-03-09 12:24 ` Mark Rutland 2020-03-09 12:24 ` Mark Rutland 2020-03-09 12:24 ` Mark Rutland 2020-03-09 19:23 ` Thomas Gleixner 2020-03-09 19:23 ` 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=20200306133242.26279-13-vincenzo.frascino@arm.com \ --to=vincenzo.frascino@arm.com \ --cc=0x7f454c46@gmail.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=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.