Re: [PATCH v6 00/14] sparc64: vdso: Switch to the generic vDSO library
Nathaniel Roach <[email protected]>
| Newsgroups | org.kernel.vger.sparclinux,dev.linux.lists.loongarch,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest,org.kernel.vger.linux-mips,org.kernel.vger.linux-s390,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <[email protected]> |
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,