All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Fix vDSO clock_getres()
@ 2019-04-01 11:51 ` Vincenzo Frascino
  0 siblings, 0 replies; 55+ messages in thread
From: Vincenzo Frascino @ 2019-04-01 11:51 UTC (permalink / raw)
  To: linux-arch, linux-arm-kernel, linuxppc-dev, linux-s390
  Cc: Benjamin Herrenschmidt, Arnd Bergmann, Heiko Carstens,
	Catalin Marinas, Will Deacon, Paul Mackerras, Greentime Hu,
	Michael Ellerman, Martin Schwidefsky, Thomas Gleixner,
	Vincent Chen, Shuah Khan

clock_getres in the vDSO library has to preserve the same behaviour
of posix_get_hrtimer_res().

In particular, posix_get_hrtimer_res() does:
    sec = 0;
    ns = hrtimer_resolution;
and hrtimer_resolution depends on the enablement of the high
resolution timers that can happen either at compile or at run time.

A possible fix is to change the vdso implementation of clock_getres,
keeping a copy of hrtimer_resolution in vdso data and using that
directly [1].

This patchset implements the proposed fix for arm64, powerpc, s390,
nds32 and adds a test to verify that the syscall and the vdso library
implementation of clock_getres return the same values.

[1] https://marc.info/?l=linux-arm-kernel&m=155110381930196&w=2 

Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Vincent Chen <deanbo422@gmail.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>

Vincenzo Frascino (5):
  arm64: Fix vDSO clock_getres()
  powerpc: Fix vDSO clock_getres()
  s390: Fix vDSO clock_getres()
  nds32: Fix vDSO clock_getres()
  kselftest: Extend vDSO selftest to clock_getres

 arch/arm64/include/asm/vdso_datapage.h        |   1 +
 arch/arm64/kernel/asm-offsets.c               |   2 +-
 arch/arm64/kernel/vdso.c                      |   2 +
 arch/arm64/kernel/vdso/gettimeofday.S         |  25 ++--
 arch/nds32/include/asm/vdso_datapage.h        |   1 +
 arch/nds32/kernel/vdso.c                      |   1 +
 arch/nds32/kernel/vdso/gettimeofday.c         |   4 +-
 arch/powerpc/include/asm/vdso_datapage.h      |   2 +
 arch/powerpc/kernel/asm-offsets.c             |   2 +-
 arch/powerpc/kernel/time.c                    |   1 +
 arch/powerpc/kernel/vdso32/gettimeofday.S     |  22 ++--
 arch/powerpc/kernel/vdso64/gettimeofday.S     |  22 ++--
 arch/s390/include/asm/vdso.h                  |   1 +
 arch/s390/kernel/asm-offsets.c                |   2 +-
 arch/s390/kernel/time.c                       |   1 +
 arch/s390/kernel/vdso32/clock_getres.S        |  17 ++-
 arch/s390/kernel/vdso64/clock_getres.S        |  15 ++-
 tools/testing/selftests/vDSO/Makefile         |   2 +
 .../selftests/vDSO/vdso_clock_getres.c        | 107 ++++++++++++++++++
 19 files changed, 191 insertions(+), 39 deletions(-)
 create mode 100644 tools/testing/selftests/vDSO/vdso_clock_getres.c

-- 
2.21.0

^ permalink raw reply	[flat|nested] 55+ messages in thread

end of thread, other threads:[~2019-04-16 14:24 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-01 11:51 [PATCH 0/5] Fix vDSO clock_getres() Vincenzo Frascino
2019-04-01 11:51 ` Vincenzo Frascino
2019-04-01 11:51 ` Vincenzo Frascino
2019-04-01 11:51 ` Vincenzo Frascino
2019-04-01 11:51 ` [PATCH 1/5] arm64: " Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-15 17:35   ` Catalin Marinas
2019-04-15 17:35     ` Catalin Marinas
2019-04-15 17:35     ` Catalin Marinas
2019-04-15 17:35     ` Catalin Marinas
2019-04-16 12:42     ` Vincenzo Frascino
2019-04-16 12:42       ` Vincenzo Frascino
2019-04-16 12:42       ` Vincenzo Frascino
2019-04-16 12:42       ` Vincenzo Frascino
2019-04-16 14:23       ` Will Deacon
2019-04-16 14:23         ` Will Deacon
2019-04-16 14:23         ` Will Deacon
2019-04-01 11:51 ` [PATCH 2/5] powerpc: " Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-02  5:54   ` Christophe Leroy
2019-04-02  5:54     ` Christophe Leroy
2019-04-02  9:00     ` Vincenzo Frascino
2019-04-02  9:00       ` Vincenzo Frascino
2019-04-02  6:14   ` Christophe Leroy
2019-04-02  6:14     ` Christophe Leroy
2019-04-02  9:01     ` Vincenzo Frascino
2019-04-02  9:01       ` Vincenzo Frascino
2019-04-01 11:51 ` [PATCH 3/5] s390: " Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-03  9:38   ` Martin Schwidefsky
2019-04-03  9:38     ` Martin Schwidefsky
2019-04-03  9:38     ` Martin Schwidefsky
2019-04-03  9:38     ` Martin Schwidefsky
2019-04-03 10:06     ` Thomas Gleixner
2019-04-03 10:06       ` Thomas Gleixner
2019-04-03 10:06       ` Thomas Gleixner
2019-04-03 10:06       ` Thomas Gleixner
2019-04-03 14:21       ` Vincenzo Frascino
2019-04-03 14:21         ` Vincenzo Frascino
2019-04-03 14:21         ` Vincenzo Frascino
2019-04-03 14:21         ` Vincenzo Frascino
2019-04-01 11:51 ` [PATCH 4/5] nds32: " Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51 ` [PATCH 5/5] kselftest: Extend vDSO selftest to clock_getres Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino
2019-04-01 11:51   ` Vincenzo Frascino

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.