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>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Anna-Maria Behnsen <anna-maria@linutronix.de>,
Frederic Weisbecker <frederic@kernel.org>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Naveen N Rao <naveen@kernel.org>,
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>,
Arnd Bergmann <arnd@arndb.de>
Cc: linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org,
linux-arch@vger.kernel.org, "Nam Cao" <namcao@linutronix.de>,
"Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Subject: [PATCH 18/19] vdso: Move arch related data before basetime
Date: Mon, 03 Mar 2025 12:11:20 +0100 [thread overview]
Message-ID: <20250303-vdso-clock-v1-18-c1b5c69a166f@linutronix.de> (raw)
In-Reply-To: <20250303-vdso-clock-v1-0-c1b5c69a166f@linutronix.de>
From: Anna-Maria Behnsen <anna-maria@linutronix.de>
Architecture related vdso data is required in fastpath when acquiring
CLOCK_MONOTONIC or CLOCK_REALTIME. At the moment, this information is
located at the end of the vdso_time_data structure. The whole structure has
to be loaded into cache to be able to access this information.
To minimize the number of required cachelines, the architecture specific
vdso data struct is moved right before the basetime (basetime information
is required anyway). This change does not have an impact on architectures
with CONFIG_ARCH_HAS_VDSO_DATA=n. All other architectures could spare
reading unnecessary cachelines.
Signed-off-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
Signed-off-by: Nam Cao <namcao@linutronix.de>
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
include/vdso/datapage.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/vdso/datapage.h b/include/vdso/datapage.h
index 1df22e8bb9b31153546b72b1e8b8c8aeaed7d9e3..bcd19c223783be7c22f90120330e7dddd0496f1a 100644
--- a/include/vdso/datapage.h
+++ b/include/vdso/datapage.h
@@ -70,6 +70,8 @@ struct vdso_timestamp {
/**
* struct vdso_time_data - vdso datapage representation
+ * @arch_data: architecture specific data (optional, defaults
+ * to an empty struct)
* @seq: timebase sequence counter
* @clock_mode: clock mode
* @cycle_last: timebase at clocksource init
@@ -83,8 +85,6 @@ struct vdso_timestamp {
* @tz_dsttime: type of DST correction
* @hrtimer_res: hrtimer resolution
* @__unused: unused
- * @arch_data: architecture specific data (optional, defaults
- * to an empty struct)
*
* vdso_time_data will be accessed by 64 bit and compat code at the same time
* so we should be careful before modifying this structure.
@@ -105,6 +105,8 @@ struct vdso_timestamp {
* offset must be zero.
*/
struct vdso_time_data {
+ struct arch_vdso_time_data arch_data;
+
u32 seq;
s32 clock_mode;
@@ -125,8 +127,6 @@ struct vdso_time_data {
s32 tz_dsttime;
u32 hrtimer_res;
u32 __unused;
-
- struct arch_vdso_time_data arch_data;
} ____cacheline_aligned;
#define vdso_clock vdso_time_data
--
2.48.1
next prev parent reply other threads:[~2025-03-03 11:11 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-03 11:11 [PATCH 00/19] vdso: Rework struct vdso_time_data and introduce struct vdso_clock Thomas Weißschuh
2025-03-03 11:11 ` Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 01/19] vdso: Introduce vdso/cache.h Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 02/19] arm64: Make asm/cache.h compatible with vDSO Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 03/19] vdso: Make vdso_time_data cacheline aligned Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 04/19] vdso/datapage: Define for vdso_data to make rework of vdso possible Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 05/19] vdso/helpers: Prepare introduction of struct vdso_clock Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 06/19] vdso/gettimeofday: " Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 07/19] vdso/gettimeofday: Prepare do_hres() for " Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 08/19] vdso/gettimeofday: Prepare do_hres_timens() " Thomas Weißschuh
2025-04-24 14:10 ` Jan Stancek
2025-04-24 15:43 ` Thomas Weißschuh
2025-04-24 21:57 ` Jan Stancek
2025-04-25 8:58 ` Thomas Weißschuh
2025-04-25 10:03 ` Jan Stancek
2025-04-25 13:40 ` Thomas Weißschuh
2025-04-25 14:37 ` Jan Stancek
2025-04-25 15:34 ` Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 09/19] vdso/gettimeofday: Prepare do_coarse() " Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 10/19] vdso/gettimeofday: Prepare do_coarse_timens() " Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 11/19] vdso/gettimeofday: Prepare helper functions " Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 12/19] vdso/vsyscall: Prepare " Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 13/19] vdso/namespace: Rename timens_setup_vdso_data() to reflect new vdso_clock struct Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 14/19] time/namespace: Prepare introduction of struct vdso_clock Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 15/19] x86/vdso: " Thomas Weißschuh
2025-03-03 11:11 ` Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 16/19] arm64/vdso: " Thomas Weißschuh
2025-03-03 11:11 ` Thomas Weißschuh
2025-03-03 11:11 ` [PATCH 17/19] powerpc/vdso: " Thomas Weißschuh
2025-03-03 11:11 ` Thomas Weißschuh
2025-03-03 11:11 ` Thomas Weißschuh [this message]
2025-03-03 11:11 ` [PATCH 19/19] vdso: Rework struct vdso_time_data and introduce " 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=20250303-vdso-clock-v1-18-c1b5c69a166f@linutronix.de \
--to=thomas.weissschuh@linutronix.de \
--cc=agordeev@linux.ibm.com \
--cc=anna-maria@linutronix.de \
--cc=arnd@arndb.de \
--cc=borntraeger@linux.ibm.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=dave.hansen@linux.intel.com \
--cc=frederic@kernel.org \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=hpa@zytor.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=luto@kernel.org \
--cc=maddy@linux.ibm.com \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=namcao@linutronix.de \
--cc=naveen@kernel.org \
--cc=npiggin@gmail.com \
--cc=svens@linux.ibm.com \
--cc=tglx@linutronix.de \
--cc=vincenzo.frascino@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: 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).