No (new) issues seen on SPARC T5-2.
On 4/3/26 15:48, Thomas Weißschuh wrote:
The generic vDSO provides a lot common functionality shared between
different architectures. SPARC is the last architecture not using it,
preventing some necessary code cleanup.
Make use of the generic infrastructure.
Follow-up to and replacement for Arnd's SPARC vDSO removal patches:
https://lore.kernel.org/lkml/[email protected]/
SPARC64 can not map .bss into userspace, so the vDSO datapages are
switched over to be allocated dynamically.
Tested on a Niagara T4 and QEMU.
This has emantic conflicts with
* "vdso: Reject absolute relocations during build" [0]
* "vDSO: Respect COMPAT_32BIT_TIME" [1]
But I expect both other serieses to need more discussions.
[0]
https://lore.kernel.org/lkml/[email protected]/
[1]
https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Thomas Weißschuh <[email protected]>
Tested-by: Nathaniel Roach <[email protected]> # SPARC T5-2
---
Changes in v6:
- Provide statically allocated during early boot to avoid canges to the rng core
- Use non-compound data pages
- Reword commit messages
- Rebase on v7.0-rc1
- Link to v5:
https://lore.kernel.org/r/[email protected]
Changes in v5:
- Merge the patches for 'struct page' mapping and dynamic allocation
- Zero out newly-allocated data pages
- Pick up review tags
- Link to v4:
https://lore.kernel.org/r/[email protected]
Changes in v4:
- Rebase on v6.18-rc1.
- Keep inclusion of asm/clocksource.h from linux/clocksource.h
- Reword description of "s390/time: Set up vDSO datapage later"
- Link to v3:
https://lore.kernel.org/r/[email protected]
Changes in v3:
- Allocate vDSO data pages dynamically (and lots of preparations for that)
- Drop clock_getres()
- Fix 32bit clock_gettime() syscall fallback
- Link to v2:
https://lore.kernel.org/r/[email protected]
Changes in v2:
- Rebase on v6.17-rc1
- Drop RFC state
- Fix typo in commit message
- Drop duplicate 'select GENERIC_TIME_VSYSCALL'
- Merge "sparc64: time: Remove architecture-specific clocksource data" into the
main conversion patch. It violated the check in
__clocksource_register_scale()
- Link to v1:
https://lore.kernel.org/r/[email protected]
---
Arnd Bergmann (1):
clocksource: remove ARCH_CLOCKSOURCE_DATA
Thomas Weißschuh (13):
vdso/datastore: Reduce scope of some variables in vvar_fault()
vdso/datastore: Drop inclusion of linux/mmap_lock.h
vdso/datastore: Allocate data pages dynamically
sparc64: vdso: Link with -z noexecstack
sparc64: vdso: Remove obsolete "fake section table" reservation
sparc64: vdso: Replace code patching with runtime conditional
sparc64: vdso: Move hardware counter read into header
sparc64: vdso: Move syscall fallbacks into header
sparc64: vdso: Introduce vdso/processor.h
sparc64: vdso: Switch to the generic vDSO library
sparc64: vdso2c: Drop sym_vvar_start handling
sparc64: vdso2c: Remove symbol handling
sparc64: vdso: Implement clock_gettime64()
arch/sparc/Kconfig | 3 +-
arch/sparc/include/asm/clocksource.h | 9 -
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.h | 2 -
arch/sparc/include/asm/vdso/clocksource.h | 10 +
arch/sparc/include/asm/vdso/gettimeofday.h | 184 ++++++++++++++
arch/sparc/include/asm/vdso/processor.h | 41 ++++
arch/sparc/include/asm/vdso/vsyscall.h | 10 +
arch/sparc/include/asm/vvar.h | 75 ------
arch/sparc/kernel/Makefile | 1 -
arch/sparc/kernel/time_64.c | 6 +-
arch/sparc/kernel/vdso.c | 69 ------
arch/sparc/vdso/Makefile | 8 +-
arch/sparc/vdso/vclock_gettime.c | 380 ++---------------------------
arch/sparc/vdso/vdso-layout.lds.S | 26 +-
arch/sparc/vdso/vdso.lds.S | 2 -
arch/sparc/vdso/vdso2c.c | 24 --
arch/sparc/vdso/vdso2c.h | 45 +---
arch/sparc/vdso/vdso32/vdso32.lds.S | 4 +-
arch/sparc/vdso/vma.c | 274 ++-------------------
include/linux/clocksource.h | 6 +-
include/linux/vdso_datastore.h | 6 +
init/main.c | 2 +
kernel/time/Kconfig | 4 -
lib/vdso/datastore.c | 97 +++++---
27 files changed, 375 insertions(+), 943 deletions(-)
---
base-commit: f02e02079ac56b44ff89d4c2189cf7185ab794f3
change-id: 20250722-vdso-sparc64-generic-2-25f2e058e92c
Best regards,