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,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.