sparclinux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
To: Andy Lutomirski <luto@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	 Vincenzo Frascino <vincenzo.frascino@arm.com>,
	 Arnd Bergmann <arnd@arndb.de>,
	"David S. Miller" <davem@davemloft.net>,
	 Andreas Larsson <andreas@gaisler.com>,
	Nick Alcock <nick.alcock@oracle.com>,
	 John Stultz <jstultz@google.com>,
	Stephen Boyd <sboyd@kernel.org>,
	 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	 Shuah Khan <shuah@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	 Will Deacon <will@kernel.org>, Theodore Ts'o <tytso@mit.edu>,
	 "Jason A. Donenfeld" <Jason@zx2c4.com>,
	 Russell King <linux@armlinux.org.uk>,
	 Madhavan Srinivasan <maddy@linux.ibm.com>,
	 Michael Ellerman <mpe@ellerman.id.au>,
	Nicholas Piggin <npiggin@gmail.com>,
	 Christophe Leroy <christophe.leroy@csgroup.eu>,
	 Huacai Chen <chenhuacai@kernel.org>,
	WANG Xuerui <kernel@xen0n.name>,
	 Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	 Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	 Alexander Gordeev <agordeev@linux.ibm.com>,
	 Christian Borntraeger <borntraeger@linux.ibm.com>,
	 Sven Schnelle <svens@linux.ibm.com>,
	 Nagarathnam Muthusamy <nagarathnam.muthusamy@oracle.com>,
	 Shannon Nelson <sln@onemain.com>
Cc: linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-kselftest@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev,
	linux-mips@vger.kernel.org, linux-s390@vger.kernel.org,
	"Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Subject: [PATCH v4 30/35] sparc64: vdso: Introduce vdso/processor.h
Date: Tue, 14 Oct 2025 08:49:16 +0200	[thread overview]
Message-ID: <20251014-vdso-sparc64-generic-2-v4-30-e0607bf49dea@linutronix.de> (raw)
In-Reply-To: <20251014-vdso-sparc64-generic-2-v4-0-e0607bf49dea@linutronix.de>

The generic vDSO library expects a vdso/processor.h with an definition of
cpu_relax().

Split out cpu_relax() into this dedicated header.

Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Tested-by: Andreas Larsson <andreas@gaisler.com>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
Acked-by: Andreas Larsson <andreas@gaisler.com>
---
 arch/sparc/include/asm/processor.h      |  3 +++
 arch/sparc/include/asm/processor_32.h   |  2 --
 arch/sparc/include/asm/processor_64.h   | 25 --------------------
 arch/sparc/include/asm/vdso/processor.h | 41 +++++++++++++++++++++++++++++++++
 4 files changed, 44 insertions(+), 27 deletions(-)

diff --git a/arch/sparc/include/asm/processor.h b/arch/sparc/include/asm/processor.h
index 18295ea625dd7271617c15caa003a173099dd4d0..e34de956519aaca0e9bf82a22000d9096f868968 100644
--- a/arch/sparc/include/asm/processor.h
+++ b/arch/sparc/include/asm/processor.h
@@ -1,6 +1,9 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 #ifndef ___ASM_SPARC_PROCESSOR_H
 #define ___ASM_SPARC_PROCESSOR_H
+
+#include <asm/vdso/processor.h>
+
 #if defined(__sparc__) && defined(__arch64__)
 #include <asm/processor_64.h>
 #else
diff --git a/arch/sparc/include/asm/processor_32.h b/arch/sparc/include/asm/processor_32.h
index ba8b70ffec085feb17de9050f37de98e0039f7c3..a074d313f4f80621c1bc42733529c6d9450b1275 100644
--- a/arch/sparc/include/asm/processor_32.h
+++ b/arch/sparc/include/asm/processor_32.h
@@ -91,8 +91,6 @@ unsigned long __get_wchan(struct task_struct *);
 extern struct task_struct *last_task_used_math;
 int do_mathemu(struct pt_regs *regs, struct task_struct *fpt);
 
-#define cpu_relax()	barrier()
-
 extern void (*sparc_idle)(void);
 
 #endif
diff --git a/arch/sparc/include/asm/processor_64.h b/arch/sparc/include/asm/processor_64.h
index 321859454ca4c55817bfcd0c627dae4f51d12041..4850704952634133aad143327bcbaa618fe66fde 100644
--- a/arch/sparc/include/asm/processor_64.h
+++ b/arch/sparc/include/asm/processor_64.h
@@ -182,31 +182,6 @@ unsigned long __get_wchan(struct task_struct *task);
 #define KSTK_EIP(tsk)  (task_pt_regs(tsk)->tpc)
 #define KSTK_ESP(tsk)  (task_pt_regs(tsk)->u_regs[UREG_FP])
 
-/* Please see the commentary in asm/backoff.h for a description of
- * what these instructions are doing and how they have been chosen.
- * To make a long story short, we are trying to yield the current cpu
- * strand during busy loops.
- */
-#ifdef	BUILD_VDSO
-#define	cpu_relax()	asm volatile("\n99:\n\t"			\
-				     "rd	%%ccr, %%g0\n\t"	\
-				     "rd	%%ccr, %%g0\n\t"	\
-				     "rd	%%ccr, %%g0\n\t"	\
-				     ::: "memory")
-#else /* ! BUILD_VDSO */
-#define cpu_relax()	asm volatile("\n99:\n\t"			\
-				     "rd	%%ccr, %%g0\n\t"	\
-				     "rd	%%ccr, %%g0\n\t"	\
-				     "rd	%%ccr, %%g0\n\t"	\
-				     ".section	.pause_3insn_patch,\"ax\"\n\t"\
-				     ".word	99b\n\t"		\
-				     "wr	%%g0, 128, %%asr27\n\t"	\
-				     "nop\n\t"				\
-				     "nop\n\t"				\
-				     ".previous"			\
-				     ::: "memory")
-#endif
-
 /* Prefetch support.  This is tuned for UltraSPARC-III and later.
  * UltraSPARC-I will treat these as nops, and UltraSPARC-II has
  * a shallower prefetch queue than later chips.
diff --git a/arch/sparc/include/asm/vdso/processor.h b/arch/sparc/include/asm/vdso/processor.h
new file mode 100644
index 0000000000000000000000000000000000000000..f7a9adc807f7c9a0444afa51aeb47649a9bdb079
--- /dev/null
+++ b/arch/sparc/include/asm/vdso/processor.h
@@ -0,0 +1,41 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+#ifndef _ASM_SPARC_VDSO_PROCESSOR_H
+#define _ASM_SPARC_VDSO_PROCESSOR_H
+
+#include <linux/compiler.h>
+
+#if defined(__arch64__)
+
+/* Please see the commentary in asm/backoff.h for a description of
+ * what these instructions are doing and how they have been chosen.
+ * To make a long story short, we are trying to yield the current cpu
+ * strand during busy loops.
+ */
+#ifdef	BUILD_VDSO
+#define	cpu_relax()	asm volatile("\n99:\n\t"			\
+				     "rd	%%ccr, %%g0\n\t"	\
+				     "rd	%%ccr, %%g0\n\t"	\
+				     "rd	%%ccr, %%g0\n\t"	\
+				     ::: "memory")
+#else /* ! BUILD_VDSO */
+#define cpu_relax()	asm volatile("\n99:\n\t"			\
+				     "rd	%%ccr, %%g0\n\t"	\
+				     "rd	%%ccr, %%g0\n\t"	\
+				     "rd	%%ccr, %%g0\n\t"	\
+				     ".section	.pause_3insn_patch,\"ax\"\n\t"\
+				     ".word	99b\n\t"		\
+				     "wr	%%g0, 128, %%asr27\n\t"	\
+				     "nop\n\t"				\
+				     "nop\n\t"				\
+				     ".previous"			\
+				     ::: "memory")
+#endif /* BUILD_VDSO */
+
+#else /* ! __arch64__ */
+
+#define cpu_relax()	barrier()
+
+#endif /* __arch64__ */
+
+#endif /* _ASM_SPARC_VDSO_PROCESSOR_H */

-- 
2.51.0


  parent reply	other threads:[~2025-10-14  6:49 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-14  6:48 [PATCH v4 00/35] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 01/35] selftests: vDSO: vdso_test_correctness: Handle different tv_usec types Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 02/35] arm64: vDSO: getrandom: Explicitly include asm/alternative.h Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 03/35] arm64: vDSO: gettimeofday: Explicitly include vdso/clocksource.h Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 04/35] arm64: vDSO: compat_gettimeofday: Add explicit includes Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 05/35] ARM: vdso: gettimeofday: " Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 06/35] powerpc/vdso/gettimeofday: Explicitly include vdso/time32.h Thomas Weißschuh
2025-10-14  7:42   ` Christophe Leroy
2025-10-14  6:48 ` [PATCH v4 07/35] powerpc/vdso: Explicitly include asm/cputable.h and asm/feature-fixups.h Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 08/35] LoongArch: vDSO: Explicitly include asm/vdso/vdso.h Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 09/35] MIPS: vdso: Add include guard to asm/vdso/vdso.h Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 10/35] MIPS: vdso: Explicitly include asm/vdso/vdso.h Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 11/35] random: vDSO: Add explicit includes Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 12/35] vdso/gettimeofday: " Thomas Weißschuh
2025-10-14  6:48 ` [PATCH v4 13/35] vdso/helpers: Explicitly include vdso/processor.h Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 14/35] vdso/datapage: Remove inclusion of gettimeofday.h Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 15/35] vdso/datapage: Trim down unnecessary includes Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 16/35] random: vDSO: trim vDSO includes Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 17/35] random: vDSO: remove ifdeffery Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 18/35] random: vDSO: split out datapage update into helper functions Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 19/35] random: vDSO: only access vDSO datapage after random_init() Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 20/35] s390/time: Set up vDSO datapage later Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 21/35] vdso/datastore: Reduce scope of some variables in vvar_fault() Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 22/35] vdso/datastore: Drop inclusion of linux/mmap_lock.h Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 23/35] vdso/datastore: Map pages through struct page Thomas Weißschuh
2025-11-03 15:24   ` Mark Brown
2025-11-03 15:54     ` Thomas Gleixner
2025-11-03 16:55       ` Mark Brown
     [not found]     ` <CGME20251104084442eucas1p2af1bd88393f4d6a532df1cd41f32a287@eucas1p2.samsung.com>
2025-11-04  8:44       ` Marek Szyprowski
2025-11-04  8:58         ` Thomas Weißschuh
2025-11-04 13:14         ` Mark Brown
2025-11-04 15:43           ` Thomas Weißschuh
2025-11-04 15:47             ` Mark Brown
2025-11-04 16:03               ` Thomas Weißschuh
2025-11-04 16:21                 ` Mark Brown
2025-11-04 13:29         ` Mark Brown
2025-11-06 13:28         ` Mark Brown
2025-11-06 13:32           ` Thomas Weißschuh
2025-11-06 13:39             ` Mark Brown
2025-10-14  6:49 ` [PATCH v4 24/35] vdso/datastore: Allocate data pages dynamically Thomas Weißschuh
2025-11-04  8:49   ` [tip: timers/vdso] " Lad Prabhakar
2025-11-05 15:34   ` [PATCH v4 24/35] " Heiko Carstens
2025-11-05 16:13     ` Thomas Weißschuh
2025-11-06 12:43     ` Aithal, Srikanth
2025-10-14  6:49 ` [PATCH v4 25/35] sparc64: vdso: Link with -z noexecstack Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 26/35] sparc64: vdso: Remove obsolete "fake section table" reservation Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 27/35] sparc64: vdso: Replace code patching with runtime conditional Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 28/35] sparc64: vdso: Move hardware counter read into header Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 29/35] sparc64: vdso: Move syscall fallbacks " Thomas Weißschuh
2025-10-14  6:49 ` Thomas Weißschuh [this message]
2025-10-14  6:49 ` [PATCH v4 31/35] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 32/35] sparc64: vdso2c: Drop sym_vvar_start handling Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 33/35] sparc64: vdso2c: Remove symbol handling Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 34/35] sparc64: vdso: Implement clock_gettime64() Thomas Weißschuh
2025-10-14  6:49 ` [PATCH v4 35/35] clocksource: remove ARCH_CLOCKSOURCE_DATA Thomas Weißschuh

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=20251014-vdso-sparc64-generic-2-v4-30-e0607bf49dea@linutronix.de \
    --to=thomas.weissschuh@linutronix.de \
    --cc=Jason@zx2c4.com \
    --cc=agordeev@linux.ibm.com \
    --cc=andreas@gaisler.com \
    --cc=arnd@arndb.de \
    --cc=borntraeger@linux.ibm.com \
    --cc=catalin.marinas@arm.com \
    --cc=chenhuacai@kernel.org \
    --cc=christophe.leroy@csgroup.eu \
    --cc=davem@davemloft.net \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=jstultz@google.com \
    --cc=kernel@xen0n.name \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=loongarch@lists.linux.dev \
    --cc=luto@kernel.org \
    --cc=maddy@linux.ibm.com \
    --cc=mpe@ellerman.id.au \
    --cc=nagarathnam.muthusamy@oracle.com \
    --cc=nick.alcock@oracle.com \
    --cc=npiggin@gmail.com \
    --cc=sboyd@kernel.org \
    --cc=shuah@kernel.org \
    --cc=sln@onemain.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=svens@linux.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=tsbogend@alpha.franken.de \
    --cc=tytso@mit.edu \
    --cc=vincenzo.frascino@arm.com \
    --cc=will@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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).