|
@@ -63,7 +63,7 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
|
|
|
local_irq_restore(flags);
|
|
|
}
|
|
|
|
|
|
-unsigned long long sched_clock(void)
|
|
|
+unsigned long long native_sched_clock(void)
|
|
|
{
|
|
|
unsigned long a = 0;
|
|
|
|
|
@@ -77,6 +77,19 @@ unsigned long long sched_clock(void)
|
|
|
return cycles_2_ns(a);
|
|
|
}
|
|
|
|
|
|
+/* We need to define a real function for sched_clock, to override the
|
|
|
+ weak default version */
|
|
|
+#ifdef CONFIG_PARAVIRT
|
|
|
+unsigned long long sched_clock(void)
|
|
|
+{
|
|
|
+ return paravirt_sched_clock();
|
|
|
+}
|
|
|
+#else
|
|
|
+unsigned long long
|
|
|
+sched_clock(void) __attribute__((alias("native_sched_clock")));
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
static int tsc_unstable;
|
|
|
|
|
|
inline int check_tsc_unstable(void)
|