diff mbox series

powerpc/time: Force inlining of get_tb()

Message ID df05d53eed1210cf1aa76d1fb44aa0fab29c018e.1608488286.git.christophe.leroy@csgroup.eu (mailing list archive)
State Accepted
Commit 0faa22f09caadc11af2aa7570870ebd2ac5b8170
Headers show
Series powerpc/time: Force inlining of get_tb() | expand

Commit Message

Christophe Leroy Dec. 20, 2020, 6:18 p.m. UTC
Force inlining of get_tb() in order to avoid getting
following function in vdso32, leading to suboptimal
performance in clock_gettime()

00000688 <.get_tb>:
 688:	7c 6d 42 a6 	mftbu   r3
 68c:	7c 8c 42 a6 	mftb    r4
 690:	7d 2d 42 a6 	mftbu   r9
 694:	7c 03 48 40 	cmplw   r3,r9
 698:	40 e2 ff f0 	bne+    688 <.get_tb>
 69c:	4e 80 00 20 	blr

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
---
 arch/powerpc/include/asm/vdso/timebase.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Ellerman Dec. 22, 2020, 1:11 p.m. UTC | #1
On Sun, 20 Dec 2020 18:18:26 +0000 (UTC), Christophe Leroy wrote:
> Force inlining of get_tb() in order to avoid getting
> following function in vdso32, leading to suboptimal
> performance in clock_gettime()
> 
> 00000688 <.get_tb>:
>  688:	7c 6d 42 a6 	mftbu   r3
>  68c:	7c 8c 42 a6 	mftb    r4
>  690:	7d 2d 42 a6 	mftbu   r9
>  694:	7c 03 48 40 	cmplw   r3,r9
>  698:	40 e2 ff f0 	bne+    688 <.get_tb>
>  69c:	4e 80 00 20 	blr

Applied to powerpc/fixes.

[1/1] powerpc/time: Force inlining of get_tb()
      https://git.kernel.org/powerpc/c/0faa22f09caadc11af2aa7570870ebd2ac5b8170

cheers
diff mbox series

Patch

diff --git a/arch/powerpc/include/asm/vdso/timebase.h b/arch/powerpc/include/asm/vdso/timebase.h
index b558b07959ce..881f655caa0a 100644
--- a/arch/powerpc/include/asm/vdso/timebase.h
+++ b/arch/powerpc/include/asm/vdso/timebase.h
@@ -49,7 +49,7 @@  static inline unsigned long get_tbl(void)
 	return mftb();
 }
 
-static inline u64 get_tb(void)
+static __always_inline u64 get_tb(void)
 {
 	unsigned int tbhi, tblo, tbhi2;