Vincenzo Frascino [off-list ref] writes:
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.
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