From: Heiko Carstens <hca@linux.ibm.com>
To: "Thomas Weißschuh" <thomas.weissschuh@linutronix.de>
Cc: 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>,
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>,
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
Subject: Re: [PATCH v4 24/35] vdso/datastore: Allocate data pages dynamically
Date: Wed, 5 Nov 2025 16:34:26 +0100 [thread overview]
Message-ID: <20251105153426.16228C13-hca@linux.ibm.com> (raw)
In-Reply-To: <20251014-vdso-sparc64-generic-2-v4-24-e0607bf49dea@linutronix.de>
On Tue, Oct 14, 2025 at 08:49:10AM +0200, Thomas Weißschuh wrote:
> Allocating the datapages as part of the kernel image does not work on
> SPARC. It is also problematic with regards to dcache aliasing as there is
> no guarantee that the virtual addresses used by the kernel are compatible
> with those used by userspace.
>
> Allocate the data pages through the page allocator instead.
> Unused pages in the vDSO VMA are still allocated to keep the virtual
> addresses aligned.
>
> These pages are used by both the timekeeping, random pool and architecture
> initialization code. Introduce a new early initialization step, to make
> sure they are available when needed.
>
> Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
> Tested-by: Andreas Larsson <andreas@gaisler.com>
> Reviewed-by: Andreas Larsson <andreas@gaisler.com>
> ---
> include/linux/vdso_datastore.h | 6 ++++++
> init/main.c | 2 ++
> lib/vdso/datastore.c | 44 ++++++++++++++++++++++--------------------
> 3 files changed, 31 insertions(+), 21 deletions(-)
...
> +void __init vdso_setup_data_pages(void)
> +{
> + unsigned int order = get_order(VDSO_NR_PAGES * PAGE_SIZE);
> + struct folio *folio = folio_alloc(GFP_KERNEL, order);
I'm seeing random hangs on s390 too with our CI, but unfortunately I cannot
reproduce it manually. But looking at one of the dumps it looks to me like the
vdso time page contains (more or less) random junk at the end. Or in other
words, shouldn't this be:
struct folio *folio = folio_alloc(GFP_KERNEL | __GFP_ZERO, order);
? At least that is a difference to before as far as I can tell.
next prev parent reply other threads:[~2025-11-05 15:35 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 ` Heiko Carstens [this message]
2025-11-05 16:13 ` [PATCH v4 24/35] " 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 ` [PATCH v4 30/35] sparc64: vdso: Introduce vdso/processor.h Thomas Weißschuh
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=20251105153426.16228C13-hca@linux.ibm.com \
--to=hca@linux.ibm.com \
--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=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=thomas.weissschuh@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).