From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: x86@kernel.org, John Stultz <john.stultz@linaro.org>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
Andy Lutomirski <luto@kernel.org>,
Christophe Leroy <christophe.leroy@c-s.fr>,
Paolo Bonzini <pbonzini@redhat.com>,
Juergen Gross <jgross@suse.com>,
Michael Kelley <mikelley@microsoft.com>,
Sasha Levin <sashal@kernel.org>,
Ralf Baechle <ralf@linux-mips.org>,
Paul Burton <paulburton@kernel.org>,
James Hogan <jhogan@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Marc Zyngier <maz@kernel.org>, Andrei Vagin <avagin@gmail.com>
Subject: [patch V2 12/17] lib/vdso: Cleanup clock mode storage leftovers
Date: Fri, 07 Feb 2020 13:38:59 +0100 [thread overview]
Message-ID: <20200207124403.470699892@linutronix.de> (raw)
In-Reply-To: 20200207123847.339896630@linutronix.de
From: Thomas Gleixner <tglx@linutronix.de>
Now that all architectures are converted to use the generic storage the
helpers and conditionals can be removed.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/arm/mm/Kconfig | 1 -
arch/arm64/Kconfig | 1 -
arch/mips/Kconfig | 1 -
arch/x86/Kconfig | 1 -
include/asm-generic/vdso/vsyscall.h | 7 -------
include/linux/clocksource.h | 4 ++--
kernel/time/vsyscall.c | 4 ----
lib/vdso/Kconfig | 3 ---
lib/vdso/gettimeofday.c | 17 +++++------------
9 files changed, 7 insertions(+), 32 deletions(-)
--- a/arch/arm/mm/Kconfig
+++ b/arch/arm/mm/Kconfig
@@ -900,7 +900,6 @@ config VDSO
select GENERIC_TIME_VSYSCALL
select GENERIC_VDSO_32
select GENERIC_GETTIMEOFDAY
- select GENERIC_VDSO_CLOCK_MODE
help
Place in the process address space an ELF shared object
providing fast implementations of gettimeofday and
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -109,7 +109,6 @@ config ARM64
select GENERIC_STRNLEN_USER
select GENERIC_TIME_VSYSCALL
select GENERIC_GETTIMEOFDAY
- select GENERIC_VDSO_CLOCK_MODE
select HANDLE_DOMAIN_IRQ
select HARDIRQS_SW_RESEND
select HAVE_PCI
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -35,7 +35,6 @@ config MIPS
select GENERIC_SCHED_CLOCK if !CAVIUM_OCTEON_SOC
select GENERIC_SMP_IDLE_THREAD
select GENERIC_TIME_VSYSCALL
- select GENERIC_VDSO_CLOCK_MODE
select GUP_GET_PTE_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
select HANDLE_DOMAIN_IRQ
select HAVE_ARCH_COMPILER_H
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -124,7 +124,6 @@ config X86
select GENERIC_STRNLEN_USER
select GENERIC_TIME_VSYSCALL
select GENERIC_GETTIMEOFDAY
- select GENERIC_VDSO_CLOCK_MODE
select GENERIC_VDSO_TIME_NS
select GUP_GET_PTE_LOW_HIGH if X86_PAE
select HARDLOCKUP_CHECK_TIMESTAMP if X86_64
--- a/include/asm-generic/vdso/vsyscall.h
+++ b/include/asm-generic/vdso/vsyscall.h
@@ -18,13 +18,6 @@ static __always_inline bool __arch_updat
}
#endif /* __arch_update_vdso_data */
-#ifndef __arch_get_clock_mode
-static __always_inline int __arch_get_clock_mode(struct timekeeper *tk)
-{
- return 0;
-}
-#endif /* __arch_get_clock_mode */
-
#ifndef __arch_update_vsyscall
static __always_inline void __arch_update_vsyscall(struct vdso_data *vdata,
struct timekeeper *tk)
--- a/include/linux/clocksource.h
+++ b/include/linux/clocksource.h
@@ -24,13 +24,13 @@ struct clocksource;
struct module;
#if defined(CONFIG_ARCH_CLOCKSOURCE_DATA) || \
- defined(CONFIG_GENERIC_VDSO_CLOCK_MODE)
+ defined(CONFIG_GENERIC_GETTIMEOFDAY)
#include <asm/clocksource.h>
#endif
enum vdso_clock_mode {
VDSO_CLOCKMODE_NONE,
-#ifdef CONFIG_GENERIC_VDSO_CLOCK_MODE
+#ifdef CONFIG_GENERIC_GETTIMEOFDAY
VDSO_ARCH_CLOCKMODES,
#endif
VDSO_CLOCKMODE_MAX,
--- a/kernel/time/vsyscall.c
+++ b/kernel/time/vsyscall.c
@@ -77,11 +77,7 @@ void update_vsyscall(struct timekeeper *
/* copy vsyscall data */
vdso_write_begin(vdata);
-#ifdef CONFIG_GENERIC_VDSO_CLOCK_MODE
clock_mode = tk->tkr_mono.clock->vdso_clock_mode;
-#else
- clock_mode = __arch_get_clock_mode(tk);
-#endif
vdata[CS_HRES_COARSE].clock_mode = clock_mode;
vdata[CS_RAW].clock_mode = clock_mode;
--- a/lib/vdso/Kconfig
+++ b/lib/vdso/Kconfig
@@ -30,7 +30,4 @@ config GENERIC_VDSO_TIME_NS
Selected by architectures which support time namespaces in the
VDSO
-config GENERIC_VDSO_CLOCK_MODE
- bool
-
endif
--- a/lib/vdso/gettimeofday.c
+++ b/lib/vdso/gettimeofday.c
@@ -65,16 +65,13 @@ static int do_hres_timens(const struct v
do {
seq = vdso_read_begin(vd);
- if (IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
- vd->clock_mode == VDSO_CLOCKMODE_NONE)
+
+ if (unlikely(vd->clock_mode == VDSO_CLOCKMODE_NONE))
return -1;
+
cycles = __arch_get_hw_counter(vd->clock_mode);
ns = vdso_ts->nsec;
last = vd->cycle_last;
- if (!IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
- unlikely((s64)cycles < 0))
- return -1;
-
ns += vdso_calc_delta(cycles, last, vd->mask, vd->mult);
ns >>= vd->shift;
sec = vdso_ts->sec;
@@ -137,16 +134,12 @@ static __always_inline int do_hres(const
}
smp_rmb();
- if (IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
- vd->clock_mode == VDSO_CLOCKMODE_NONE)
+ if (unlikely(vd->clock_mode == VDSO_CLOCKMODE_NONE))
return -1;
+
cycles = __arch_get_hw_counter(vd->clock_mode);
ns = vdso_ts->nsec;
last = vd->cycle_last;
- if (!IS_ENABLED(CONFIG_GENERIC_VDSO_CLOCK_MODE) &&
- unlikely((s64)cycles < 0))
- return -1;
-
ns += vdso_calc_delta(cycles, last, vd->mask, vd->mult);
ns >>= vd->shift;
sec = vdso_ts->sec;
next prev parent reply other threads:[~2020-02-07 13:26 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-07 12:38 [patch V2 00/17] VDSO consolidation Thomas Gleixner
2020-02-07 12:38 ` [patch V2 01/17] x86/vdso: Mark the TSC clocksource path likely Thomas Gleixner
2020-02-14 12:00 ` Vincenzo Frascino
2020-02-17 15:12 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 02/17] ARM: vdso: Remove unused function Thomas Gleixner
2020-02-14 10:21 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 03/17] lib/vdso: Allow the high resolution parts to be compiled out Thomas Gleixner
2020-02-14 11:54 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 04/17] ARM: vdso: Compile high resolution parts conditionally Thomas Gleixner
2020-02-14 11:55 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 05/17] MIPS: " Thomas Gleixner
2020-02-14 11:55 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 06/17] clocksource: Cleanup struct clocksource and documentation Thomas Gleixner
2020-02-14 11:57 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 07/17] x86/vdso: Move VDSO clocksource state tracking to callback Thomas Gleixner
2020-02-14 11:58 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 08/17] clocksource: Add common vdso clock mode storage Thomas Gleixner
2020-02-17 10:36 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 09/17] x86/vdso: Use generic VDSO " Thomas Gleixner
2020-02-14 10:32 ` Paolo Bonzini
2020-02-17 10:57 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 10/17] mips: vdso: " Thomas Gleixner
2020-02-17 10:52 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-17 19:18 ` tip-bot2 for Thomas Gleixner
2020-02-07 12:38 ` [patch V2 11/17] ARM/arm64: vdso: Use common vdso " Thomas Gleixner
2020-02-17 10:43 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-17 19:18 ` tip-bot2 for Thomas Gleixner
[not found] ` <CGME20200221115643eucas1p12ecb95c6161853a0e7dfe9207db079be@eucas1p1.samsung.com>
2020-02-21 11:56 ` [patch V2 11/17] " Marek Szyprowski
2020-02-21 11:56 ` Marek Szyprowski
2020-02-21 13:08 ` Vincenzo Frascino
2020-02-21 13:08 ` Vincenzo Frascino
2020-02-21 18:24 ` Vincenzo Frascino
2020-02-21 18:24 ` Vincenzo Frascino
2020-02-07 12:38 ` Thomas Gleixner [this message]
2020-02-17 11:04 ` [patch V2 12/17] lib/vdso: Cleanup clock mode storage leftovers Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-17 19:18 ` tip-bot2 for Thomas Gleixner
2020-02-07 12:39 ` [patch V2 13/17] lib/vdso: Avoid highres update if clocksource is not VDSO capable Thomas Gleixner
2020-02-17 11:07 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-17 19:18 ` tip-bot2 for Thomas Gleixner
2020-02-07 12:39 ` [patch V2 14/17] lib/vdso: Move VCLOCK_TIMENS to vdso_clock_modes Thomas Gleixner
2020-02-17 11:12 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2020-02-17 19:18 ` tip-bot2 for Thomas Gleixner
2020-02-07 12:39 ` [patch V2 15/17] lib/vdso: Allow fixed clock mode Thomas Gleixner
2020-02-17 11:14 ` Vincenzo Frascino
2020-02-17 15:11 ` [tip: timers/core] " tip-bot2 for Christophe Leroy
2020-02-17 19:18 ` tip-bot2 for Christophe Leroy
2020-02-07 12:39 ` [patch V2 16/17] lib/vdso: Allow architectures to override the ns shift operation Thomas Gleixner
2020-02-17 11:15 ` Vincenzo Frascino
2020-02-07 12:39 ` [patch V2 17/17] lib/vdso: Allow architectures to provide the vdso data pointer Thomas Gleixner
2020-02-17 12:09 ` Vincenzo Frascino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200207124403.470699892@linutronix.de \
--to=tglx@linutronix.de \
--cc=avagin@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=christophe.leroy@c-s.fr \
--cc=jgross@suse.com \
--cc=jhogan@kernel.org \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=luto@kernel.org \
--cc=mark.rutland@arm.com \
--cc=maz@kernel.org \
--cc=mikelley@microsoft.com \
--cc=paulburton@kernel.org \
--cc=pbonzini@redhat.com \
--cc=ralf@linux-mips.org \
--cc=sashal@kernel.org \
--cc=vincenzo.frascino@arm.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.