From: "Arnd Bergmann" <arnd@arndb.de>
To: "Maciej W. Rozycki" <macro@orcam.me.uk>
Cc: "Andy Lutomirski" <luto@kernel.org>,
"Thomas Weißschuh" <thomas.weissschuh@linutronix.de>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Vincenzo Frascino" <vincenzo.frascino@arm.com>,
"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 <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>,
"Shannon Nelson" <sln@onemain.com>,
"Linux Kernel Mailing List" <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,
"Arnd Bergmann" <arnd@kernel.org>
Subject: Re: [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library
Date: Sun, 09 Nov 2025 17:08:27 +0100 [thread overview]
Message-ID: <7eb1a661-e5bf-45cb-a3cf-7337fb0c4173@app.fastmail.com> (raw)
In-Reply-To: <alpine.DEB.2.21.2511090221080.25436@angie.orcam.me.uk>
On Sun, Nov 9, 2025, at 04:23, Maciej W. Rozycki wrote:
> On Sat, 8 Nov 2025, Arnd Bergmann wrote:
>
>> On other architectures, I see that parisc (always aliasing) has stubbed
>> out the vdso functions, while mips/loongson has limited the page size
>> selection to never alias. A few other mips platforms can theoretically
>> enable both small pages and vdso, but my guess is that in practice
>> they don't use the vdso (mips32/ath79) or they use 16KB pages
>> (rm, dec, ip22) based on the defconfig settings.
>
> Umm, I'd have to dive into the details (and I hardly have the resources
> at hand), but quite a bunch of MIPS microarchitectures suffer from cache
> aliases; some even have VIVT caches.
I was going with this list:
$ git grep define.cpu_has_dc_aliases arch/mips/
arch/mips/include/asm/cpu-features.h:#define cpu_has_dc_aliases (cpu_data[0].dcache.flags & MIPS_CACHE_ALIASES)
arch/mips/include/asm/mach-ath79/cpu-feature-overrides.h:#define cpu_has_dc_aliases 1
arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-dec/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-dec/cpu-feature-overrides.h:#define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
arch/mips/include/asm/mach-ingenic/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-ip22/cpu-feature-overrides.h:#define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
arch/mips/include/asm/mach-ip27/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-ip28/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0 /* see probe_pcache() */
arch/mips/include/asm/mach-ip30/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-loongson2ef/cpu-feature-overrides.h:#define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
arch/mips/include/asm/mach-loongson64/cpu-feature-overrides.h:#define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
arch/mips/include/asm/mach-malta/cpu-feature-overrides.h:/* #define cpu_has_dc_aliases ? */
arch/mips/include/asm/mach-malta/cpu-feature-overrides.h:/* #define cpu_has_dc_aliases ? */
arch/mips/include/asm/mach-ralink/mt7621/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
arch/mips/include/asm/mach-rm/cpu-feature-overrides.h:#define cpu_has_dc_aliases (PAGE_SIZE < 0x4000)
arch/mips/include/asm/mach-sibyte/cpu-feature-overrides.h:#define cpu_has_dc_aliases 0
which for many platforms seems to come up with a compile-time
constant value. I hadn't checked the exact conditions for
the runtime MIPS_CACHE_ALIASES flag, but I see that the kernel
has a fairly centralized detection function in probe_pcache()
https://elixir.bootlin.com/linux/v6.17.7/source/arch/mips/mm/c-r4k.c#L1251
which is used for the 'generic' platform and those that don't set
a compile-time constant (ath25, bcm47xx, bmips, cobalt, ip32, malta,
pic32, rc32434 and tx49xx).
> (see the figures at the bottom; uptime quoted for an idea of the rate,
> though the system hasn't been heavily loaded). It is possible with the
> aid of S$, which is inclusive and PIPT.
I now found commit 0f02cfbc3d9e ("MIPS: VDSO: Match data page
cache colouring when D$ aliases"), which probably does everything
necessary to just make it work reliably on mips, and should
be portable to sparc as Andy suggested as well.
Arnd
next prev parent reply other threads:[~2025-11-09 16:09 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-06 10:01 [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 01/34] selftests: vDSO: vdso_test_correctness: Handle different tv_usec types Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 02/34] arm64: vDSO: getrandom: Explicitly include asm/alternative.h Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 03/34] arm64: vDSO: gettimeofday: Explicitly include vdso/clocksource.h Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 04/34] arm64: vDSO: compat_gettimeofday: Add explicit includes Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 05/34] ARM: vdso: gettimeofday: " Thomas Weißschuh
2025-11-06 10:01 ` [PATCH v5 06/34] powerpc/vdso/gettimeofday: Explicitly include vdso/time32.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 07/34] powerpc/vdso: Explicitly include asm/cputable.h and asm/feature-fixups.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 08/34] LoongArch: vDSO: Explicitly include asm/vdso/vdso.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 09/34] MIPS: vdso: Add include guard to asm/vdso/vdso.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 10/34] MIPS: vdso: Explicitly include asm/vdso/vdso.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 11/34] random: vDSO: Add explicit includes Thomas Weißschuh
2025-11-07 23:59 ` Jason A. Donenfeld
2025-11-06 10:02 ` [PATCH v5 12/34] vdso/gettimeofday: " Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 13/34] vdso/helpers: Explicitly include vdso/processor.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 14/34] vdso/datapage: Remove inclusion of gettimeofday.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 15/34] vdso/datapage: Trim down unnecessary includes Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 16/34] random: vDSO: trim vDSO includes Thomas Weißschuh
2025-11-07 23:49 ` Jason A. Donenfeld
2025-11-08 0:00 ` Jason A. Donenfeld
2025-11-06 10:02 ` [PATCH v5 17/34] random: vDSO: remove ifdeffery Thomas Weißschuh
2025-11-07 23:37 ` Jason A. Donenfeld
2025-11-10 8:45 ` Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 18/34] random: vDSO: split out datapage update into helper functions Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 19/34] random: vDSO: only access vDSO datapage after random_init() Thomas Weißschuh
2025-11-07 23:46 ` Jason A. Donenfeld
2025-11-10 9:04 ` Thomas Weißschuh
2025-11-10 10:37 ` Jason A. Donenfeld
2025-11-10 11:24 ` Thomas Weißschuh
2025-11-10 11:40 ` Jason A. Donenfeld
2025-11-11 8:55 ` Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 20/34] s390/time: Set up vDSO datapage later Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 21/34] vdso/datastore: Reduce scope of some variables in vvar_fault() Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 22/34] vdso/datastore: Drop inclusion of linux/mmap_lock.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 23/34] vdso/datastore: Allocate data pages dynamically Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 24/34] sparc64: vdso: Link with -z noexecstack Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 25/34] sparc64: vdso: Remove obsolete "fake section table" reservation Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 26/34] sparc64: vdso: Replace code patching with runtime conditional Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 27/34] sparc64: vdso: Move hardware counter read into header Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 28/34] sparc64: vdso: Move syscall fallbacks " Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 29/34] sparc64: vdso: Introduce vdso/processor.h Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 30/34] sparc64: vdso: Switch to the generic vDSO library Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 31/34] sparc64: vdso2c: Drop sym_vvar_start handling Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 32/34] sparc64: vdso2c: Remove symbol handling Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 33/34] sparc64: vdso: Implement clock_gettime64() Thomas Weißschuh
2025-11-06 10:02 ` [PATCH v5 34/34] clocksource: remove ARCH_CLOCKSOURCE_DATA Thomas Weißschuh
2025-11-06 12:55 ` [PATCH v5 00/34] sparc64: vdso: Switch to the generic vDSO library Aithal, Srikanth
2025-11-06 14:02 ` Mark Brown
2025-11-06 17:20 ` Arnd Bergmann
2025-11-08 0:17 ` Andy Lutomirski
2025-11-08 10:17 ` Arnd Bergmann
2025-11-09 3:23 ` Maciej W. Rozycki
2025-11-09 16:08 ` Arnd Bergmann [this message]
2026-01-16 12:10 ` 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=7eb1a661-e5bf-45cb-a3cf-7337fb0c4173@app.fastmail.com \
--to=arnd@arndb.de \
--cc=Jason@zx2c4.com \
--cc=agordeev@linux.ibm.com \
--cc=andreas@gaisler.com \
--cc=arnd@kernel.org \
--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=macro@orcam.me.uk \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--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