linux/lib/vdso/Kconfig
Thomas Weißschuh df7fcbefa7 vdso: Add generic time data storage
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
2025-02-21 09:54:01 +01:00

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.