mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-21 06:50:25 +00:00

Historically each architecture defined their own way to store the vDSO data page. Add a generic mechanism to provide storage for that page. Furthermore this generic storage will be extended to also provide uniform storage for *non*-time-related data, like the random state or architecture-specific data. These will have their own pages and data structures, so rename 'vdso_data' into 'vdso_time_data' to make that split clear from the name. Also introduce a new consistent naming scheme for the symbols related to the vDSO, which makes it clear if the symbol is accessible from userspace or kernel space and the type of data behind the symbol. The generic fault handler contains an optimization to prefault the vvar page when the timens page is accessed. This was lifted from s390 and x86. Co-developed-by: Nam Cao <namcao@linutronix.de> Signed-off-by: Nam Cao <namcao@linutronix.de> Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250204-vdso-store-rng-v3-5-13a4669dfc8c@linutronix.de
50 lines
1.1 KiB
Text
50 lines
1.1 KiB
Text
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
config HAVE_GENERIC_VDSO
|
|
bool
|
|
|
|
if HAVE_GENERIC_VDSO
|
|
|
|
config GENERIC_GETTIMEOFDAY
|
|
bool
|
|
help
|
|
This is a generic implementation of gettimeofday vdso.
|
|
Each architecture that enables this feature has to
|
|
provide the fallback implementation.
|
|
|
|
config GENERIC_VDSO_32
|
|
bool
|
|
depends on GENERIC_GETTIMEOFDAY && !64BIT
|
|
help
|
|
This config option helps to avoid possible performance issues
|
|
in 32 bit only architectures.
|
|
|
|
config GENERIC_COMPAT_VDSO
|
|
bool
|
|
help
|
|
This config option enables the compat VDSO layer.
|
|
|
|
config GENERIC_VDSO_TIME_NS
|
|
bool
|
|
help
|
|
Selected by architectures which support time namespaces in the
|
|
VDSO
|
|
|
|
config GENERIC_VDSO_OVERFLOW_PROTECT
|
|
bool
|
|
help
|
|
Select to add multiplication overflow protection to the VDSO
|
|
time getter functions for the price of an extra conditional
|
|
in the hotpath.
|
|
|
|
endif
|
|
|
|
config VDSO_GETRANDOM
|
|
bool
|
|
help
|
|
Selected by architectures that support vDSO getrandom().
|
|
|
|
config GENERIC_VDSO_DATA_STORE
|
|
bool
|
|
help
|
|
Selected by architectures that use the generic vDSO data store.
|