Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cb9e35dc authored by Ingo Molnar's avatar Ingo Molnar
Browse files

x86: clean up rdtsc_barrier() use



Impact: cleanup

Move rdtsc_barrier() use to vsyscall_64.c where it's relied on,
and point out its role in the context of its use.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 895e0317
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -44,11 +44,7 @@ static __always_inline cycles_t vget_cycles(void)
	if (!cpu_has_tsc)
		return 0;
#endif
	rdtsc_barrier();
	cycles = (cycles_t)__native_read_tsc();
	rdtsc_barrier();

	return cycles;
	return (cycles_t)__native_read_tsc();
}

extern void tsc_init(void);
+9 −0
Original line number Diff line number Diff line
@@ -128,7 +128,16 @@ static __always_inline void do_vgettimeofday(struct timeval * tv)
			gettimeofday(tv,NULL);
			return;
		}

		/*
		 * Surround the RDTSC by barriers, to make sure it's not
		 * speculated to outside the seqlock critical section and
		 * does not cause time warps:
		 */
		rdtsc_barrier();
		now = vread();
		rdtsc_barrier();

		base = __vsyscall_gtod_data.clock.cycle_last;
		mask = __vsyscall_gtod_data.clock.mask;
		mult = __vsyscall_gtod_data.clock.mult;