From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757771AbdJLXAG (ORCPT ); Thu, 12 Oct 2017 19:00:06 -0400 Received: from mail-pf0-f180.google.com ([209.85.192.180]:47698 "EHLO mail-pf0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757726AbdJLXAD (ORCPT ); Thu, 12 Oct 2017 19:00:03 -0400 X-Google-Smtp-Source: AOwi7QD1kQC4Dhndq3Pbfl7PRX8R7+LFM4JegQkbkE2OKHVwr6JlWDIed86YfxD8aEJl2JrBVBKd+g== From: Mark Salyzyn To: linux-kernel@vger.kernel.org Cc: james.morse@arm.com, Mark Salyzyn , Russell King , Mark Salyzyn , linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 4/10] arm: vdso: enforce monotonic and realtime as inline Date: Thu, 12 Oct 2017 15:59:52 -0700 Message-Id: <20171012225956.86705-1-salyzyn@android.com> X-Mailer: git-send-email 2.15.0.rc0.271.g36b669edcc-goog Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Ensure monotonic and realtime are inline, small price to pay for high volume common request. Signed-off-by: Mark Salyzyn v2: split first CL into 4 of 7 pieces --- arch/arm/vdso/vgettimeofday.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/arm/vdso/vgettimeofday.c b/arch/arm/vdso/vgettimeofday.c index 5f596911bd53..71003a1997c4 100644 --- a/arch/arm/vdso/vgettimeofday.c +++ b/arch/arm/vdso/vgettimeofday.c @@ -99,7 +99,7 @@ static notrace int do_monotonic_coarse(const struct vdso_data *vd, #ifdef CONFIG_ARM_ARCH_TIMER -static notrace u64 get_ns(const struct vdso_data *vd) +static __always_inline notrace u64 get_ns(const struct vdso_data *vd) { u64 cycle_delta; u64 cycle_now; @@ -115,7 +115,9 @@ static notrace u64 get_ns(const struct vdso_data *vd) return nsec; } -static notrace int do_realtime(const struct vdso_data *vd, struct timespec *ts) +/* Code size doesn't matter (vdso is 4k/16k/64k anyway) and this is faster. */ +static __always_inline notrace int do_realtime(const struct vdso_data *vd, + struct timespec *ts) { u64 nsecs; u32 seq; @@ -137,7 +139,8 @@ static notrace int do_realtime(const struct vdso_data *vd, struct timespec *ts) return 0; } -static notrace int do_monotonic(const struct vdso_data *vd, struct timespec *ts) +static __always_inline notrace int do_monotonic(const struct vdso_data *vd, + struct timespec *ts) { struct timespec tomono; u64 nsecs; -- 2.15.0.rc0.271.g36b669edcc-goog