On Fri, Feb 27, 2026 at 09:46:23AM +0100, Arnd Bergmann wrote: > On Fri, Feb 27, 2026, at 07:57, Thomas Weißschuh wrote: > > This configuration option exists so "that we don't provide the symbol > > when there's no possibility of there being a usable clocksource". > > However it only covers __vdso_gettimeofday() and none of the other vDSO > > functions which should be affected by the same circumstances. > > As these are more widely used than gettimeofday() and nobody seems to > > have had an issue with them so far, drop MIPS_CLOCK_VSYSCALL completely. > > > > The removal of the ifdeffery will also make some upcomming changes > > easier to read. > > > > Signed-off-by: Thomas Weißschuh <[email protected]> > > The #ifdef was originally been added in commit 7d2aa4bb90f5 ("mips: > Fix gettimeofday() in the vdso library") as a bug fix. This may not > have been the correct fix because I don't see how it addressed the > case of a kernel with MIPS_CLOCK_VSYSCALL enabled running on a > CPU without the timer registers, but I think we should try to make > sure that there is no regression from reverting it now.
I can't make sense out of this commit. The generic vDSO automatically falls back to the syscall if it can not handle the current clocksource. There is no explanation *why* this should be broken on MIPS. It works correctly on my x86 machines. I will try to reproduce this in QEMU by removing the vDSO capability from the respective clocksources. Also vdso_clock_gettime() uses the same codepaths as vdso_gettimeofday() and apparently that is not broken. > > -config MIPS_CLOCK_VSYSCALL > > - def_bool CSRC_R4K || CLKSRC_MIPS_GIC > > - > > An easy alternative might be to drop the entire VDSO in > configurations that turn off the gettimeofday vsyscall today: > > diff --git a/arch/mips/vdso/Kconfig b/arch/mips/vdso/Kconfig > index 70140248da72..4f6fba9e108f 100644 > --- a/arch/mips/vdso/Kconfig > +++ b/arch/mips/vdso/Kconfig > @@ -3,4 +3,4 @@ > # the lack of relocations. As such, we disable the VDSO for microMIPS builds. > > config MIPS_DISABLE_VDSO > - def_bool CPU_MICROMIPS > + def_bool CPU_MICROMIPS || !(CSRC_R4K || CLKSRC_MIPS_GIC) That is an an independent optimization IMO. Thomas
