Thread (55 messages) flat view 55 messages, 9 authors, 2020-02-18

Re: [PATCHv8 02/34] lib/vdso: make do_hres and do_coarse as __always_inline

From: Vincenzo Frascino <hidden>
Date: 2020-01-10 12:15:26
Also in: lkml

On 1/10/20 12:02 PM, Thomas Gleixner wrote:
Vincenzo Frascino [off-list ref] writes:
quoted
On 1/10/20 11:42 AM, Thomas Gleixner wrote:
quoted
quoted
quoted
+» » /*·goto·allows·to·avoid·extra·inlining·of·do_hres.·*/
+» » goto·out_hres;
What is the performance impact of "goto out_hres"?
On x86 it's invisible at least in my limited testing.
On arm64 as well based on mine as well. Shall we keep the code more readable
here (without goto)?
The delta patch below makes it readable again and also avoids the double
inlining. Quick testing shows no difference.
I tested it on arm64 and it does not show any difference as well.
I vote for it :)
quoted hunk ↗ jump to hunk
Thanks,

        tglx

8<---------------
--- a/lib/vdso/gettimeofday.c
+++ b/lib/vdso/gettimeofday.c
@@ -98,17 +98,15 @@ static __maybe_unused int
 	msk = 1U << clock;
 	if (likely(msk & VDSO_HRES)) {
 		vd = &vd[CS_HRES_COARSE];
-out_hres:
-		return do_hres(vd, clock, ts);
 	} else if (msk & VDSO_COARSE) {
 		do_coarse(&vd[CS_HRES_COARSE], clock, ts);
 		return 0;
 	} else if (msk & VDSO_RAW) {
 		vd = &vd[CS_RAW];
-		/* This goto avoids extra inlining of do_hres. */
-		goto out_hres;
+	} else {
+		return -1;
 	}
-	return -1;
+	return do_hres(vd, clock, ts);
 }
 
 static __maybe_unused int
-- 
Regards,
Vincenzo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help