提交 e93ef949 编写于 作者: A Alok Kataria 提交者: Ingo Molnar

x86: rename paravirtualized TSC functions

Rename the paravirtualized calculate_cpu_khz to calibrate_tsc.
In all cases, we actually calibrate_tsc and use that as the cpu_khz value.
Signed-off-by: NAlok N Kataria <akataria@vmware.com>
Signed-off-by: NDan Hecht <dhecht@vmware.com>
Cc: Dan Hecht <dhecht@vmware.com>
Signed-off-by: NIngo Molnar <mingo@elte.hu>
上级 8fbbc4b4
...@@ -285,7 +285,7 @@ struct pv_time_ops pv_time_ops = { ...@@ -285,7 +285,7 @@ struct pv_time_ops pv_time_ops = {
.get_wallclock = native_get_wallclock, .get_wallclock = native_get_wallclock,
.set_wallclock = native_set_wallclock, .set_wallclock = native_set_wallclock,
.sched_clock = native_sched_clock, .sched_clock = native_sched_clock,
.get_cpu_khz = native_calculate_cpu_khz, .get_tsc_khz = native_calibrate_tsc,
}; };
struct pv_irq_ops pv_irq_ops = { struct pv_irq_ops pv_irq_ops = {
......
...@@ -123,9 +123,9 @@ static u64 __init tsc_read_refs(u64 *pm, u64 *hpet) ...@@ -123,9 +123,9 @@ static u64 __init tsc_read_refs(u64 *pm, u64 *hpet)
} }
/** /**
* tsc_calibrate - calibrate the tsc on boot * native_calibrate_tsc - calibrate the tsc on boot
*/ */
static unsigned int __init tsc_calibrate(void) unsigned long native_calibrate_tsc(void)
{ {
unsigned long flags; unsigned long flags;
u64 tsc1, tsc2, tr1, tr2, delta, pm1, pm2, hpet1, hpet2; u64 tsc1, tsc2, tr1, tr2, delta, pm1, pm2, hpet1, hpet2;
...@@ -195,10 +195,6 @@ static unsigned int __init tsc_calibrate(void) ...@@ -195,10 +195,6 @@ static unsigned int __init tsc_calibrate(void)
return tsc_khz_val; return tsc_khz_val;
} }
unsigned long native_calculate_cpu_khz(void)
{
return tsc_calibrate();
}
#ifdef CONFIG_X86_32 #ifdef CONFIG_X86_32
/* Only called from the Powernow K7 cpu freq driver */ /* Only called from the Powernow K7 cpu freq driver */
...@@ -208,8 +204,8 @@ int recalibrate_cpu_khz(void) ...@@ -208,8 +204,8 @@ int recalibrate_cpu_khz(void)
unsigned long cpu_khz_old = cpu_khz; unsigned long cpu_khz_old = cpu_khz;
if (cpu_has_tsc) { if (cpu_has_tsc) {
cpu_khz = calculate_cpu_khz(); tsc_khz = calibrate_tsc();
tsc_khz = cpu_khz; cpu_khz = tsc_khz;
cpu_data(0).loops_per_jiffy = cpu_data(0).loops_per_jiffy =
cpufreq_scale(cpu_data(0).loops_per_jiffy, cpufreq_scale(cpu_data(0).loops_per_jiffy,
cpu_khz_old, cpu_khz); cpu_khz_old, cpu_khz);
...@@ -487,10 +483,10 @@ void __init tsc_init(void) ...@@ -487,10 +483,10 @@ void __init tsc_init(void)
if (!cpu_has_tsc) if (!cpu_has_tsc)
return; return;
cpu_khz = calculate_cpu_khz(); tsc_khz = calibrate_tsc();
tsc_khz = cpu_khz; cpu_khz = tsc_khz;
if (!cpu_khz) { if (!tsc_khz) {
mark_tsc_unstable("could not calculate TSC khz"); mark_tsc_unstable("could not calculate TSC khz");
return; return;
} }
......
...@@ -932,7 +932,7 @@ static inline int __init activate_vmi(void) ...@@ -932,7 +932,7 @@ static inline int __init activate_vmi(void)
pv_apic_ops.setup_secondary_clock = vmi_time_ap_init; pv_apic_ops.setup_secondary_clock = vmi_time_ap_init;
#endif #endif
pv_time_ops.sched_clock = vmi_sched_clock; pv_time_ops.sched_clock = vmi_sched_clock;
pv_time_ops.get_cpu_khz = vmi_cpu_khz; pv_time_ops.get_tsc_khz = vmi_tsc_khz;
/* We have true wallclock functions; disable CMOS clock sync */ /* We have true wallclock functions; disable CMOS clock sync */
no_sync_cmos_clock = 1; no_sync_cmos_clock = 1;
......
...@@ -69,8 +69,8 @@ unsigned long long vmi_sched_clock(void) ...@@ -69,8 +69,8 @@ unsigned long long vmi_sched_clock(void)
return cycles_2_ns(vmi_timer_ops.get_cycle_counter(VMI_CYCLES_AVAILABLE)); return cycles_2_ns(vmi_timer_ops.get_cycle_counter(VMI_CYCLES_AVAILABLE));
} }
/* paravirt_ops.get_cpu_khz = vmi_cpu_khz */ /* paravirt_ops.get_tsc_khz = vmi_tsc_khz */
unsigned long vmi_cpu_khz(void) unsigned long vmi_tsc_khz(void)
{ {
unsigned long long khz; unsigned long long khz;
khz = vmi_timer_ops.get_cycle_frequency(); khz = vmi_timer_ops.get_cycle_frequency();
......
...@@ -607,7 +607,7 @@ static unsigned long lguest_get_wallclock(void) ...@@ -607,7 +607,7 @@ static unsigned long lguest_get_wallclock(void)
* what speed it runs at, or 0 if it's unusable as a reliable clock source. * what speed it runs at, or 0 if it's unusable as a reliable clock source.
* This matches what we want here: if we return 0 from this function, the x86 * This matches what we want here: if we return 0 from this function, the x86
* TSC clock will give up and not register itself. */ * TSC clock will give up and not register itself. */
static unsigned long lguest_cpu_khz(void) static unsigned long lguest_tsc_khz(void)
{ {
return lguest_data.tsc_khz; return lguest_data.tsc_khz;
} }
...@@ -998,7 +998,7 @@ __init void lguest_init(void) ...@@ -998,7 +998,7 @@ __init void lguest_init(void)
/* time operations */ /* time operations */
pv_time_ops.get_wallclock = lguest_get_wallclock; pv_time_ops.get_wallclock = lguest_get_wallclock;
pv_time_ops.time_init = lguest_time_init; pv_time_ops.time_init = lguest_time_init;
pv_time_ops.get_cpu_khz = lguest_cpu_khz; pv_time_ops.get_tsc_khz = lguest_tsc_khz;
/* Now is a good time to look at the implementations of these functions /* Now is a good time to look at the implementations of these functions
* before returning to the rest of lguest_init(). */ * before returning to the rest of lguest_init(). */
......
...@@ -1062,7 +1062,7 @@ static const struct pv_time_ops xen_time_ops __initdata = { ...@@ -1062,7 +1062,7 @@ static const struct pv_time_ops xen_time_ops __initdata = {
.set_wallclock = xen_set_wallclock, .set_wallclock = xen_set_wallclock,
.get_wallclock = xen_get_wallclock, .get_wallclock = xen_get_wallclock,
.get_cpu_khz = xen_cpu_khz, .get_tsc_khz = xen_tsc_khz,
.sched_clock = xen_sched_clock, .sched_clock = xen_sched_clock,
}; };
......
...@@ -197,8 +197,8 @@ unsigned long long xen_sched_clock(void) ...@@ -197,8 +197,8 @@ unsigned long long xen_sched_clock(void)
} }
/* Get the CPU speed from Xen */ /* Get the TSC speed from Xen */
unsigned long xen_cpu_khz(void) unsigned long xen_tsc_khz(void)
{ {
u64 xen_khz = 1000000ULL << 32; u64 xen_khz = 1000000ULL << 32;
const struct pvclock_vcpu_time_info *info = const struct pvclock_vcpu_time_info *info =
......
...@@ -32,7 +32,7 @@ void __init xen_build_dynamic_phys_to_machine(void); ...@@ -32,7 +32,7 @@ void __init xen_build_dynamic_phys_to_machine(void);
void xen_setup_timer(int cpu); void xen_setup_timer(int cpu);
void xen_setup_cpu_clockevents(void); void xen_setup_cpu_clockevents(void);
unsigned long xen_cpu_khz(void); unsigned long xen_tsc_khz(void);
void __init xen_time_init(void); void __init xen_time_init(void);
unsigned long xen_get_wallclock(void); unsigned long xen_get_wallclock(void);
int xen_set_wallclock(unsigned long time); int xen_set_wallclock(unsigned long time);
......
...@@ -84,7 +84,7 @@ struct pv_time_ops { ...@@ -84,7 +84,7 @@ struct pv_time_ops {
int (*set_wallclock)(unsigned long); int (*set_wallclock)(unsigned long);
unsigned long long (*sched_clock)(void); unsigned long long (*sched_clock)(void);
unsigned long (*get_cpu_khz)(void); unsigned long (*get_tsc_khz)(void);
}; };
struct pv_cpu_ops { struct pv_cpu_ops {
...@@ -779,7 +779,7 @@ static inline unsigned long long paravirt_sched_clock(void) ...@@ -779,7 +779,7 @@ static inline unsigned long long paravirt_sched_clock(void)
{ {
return PVOP_CALL0(unsigned long long, pv_time_ops.sched_clock); return PVOP_CALL0(unsigned long long, pv_time_ops.sched_clock);
} }
#define calculate_cpu_khz() (pv_time_ops.get_cpu_khz()) #define calibrate_tsc() (pv_time_ops.get_tsc_khz())
static inline unsigned long long paravirt_read_pmc(int counter) static inline unsigned long long paravirt_read_pmc(int counter)
{ {
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
#define TICK_SIZE (tick_nsec / 1000) #define TICK_SIZE (tick_nsec / 1000)
unsigned long long native_sched_clock(void); unsigned long long native_sched_clock(void);
unsigned long native_calculate_cpu_khz(void); unsigned long native_calibrate_tsc(void);
extern int timer_ack; extern int timer_ack;
extern int no_timer_check; extern int no_timer_check;
extern int recalibrate_cpu_khz(void); extern int recalibrate_cpu_khz(void);
#ifndef CONFIG_PARAVIRT #ifndef CONFIG_PARAVIRT
#define calculate_cpu_khz() native_calculate_cpu_khz() #define calibrate_tsc() native_calibrate_tsc()
#endif #endif
/* Accelerators for sched_clock() /* Accelerators for sched_clock()
......
...@@ -50,7 +50,7 @@ extern void __init vmi_time_init(void); ...@@ -50,7 +50,7 @@ extern void __init vmi_time_init(void);
extern unsigned long vmi_get_wallclock(void); extern unsigned long vmi_get_wallclock(void);
extern int vmi_set_wallclock(unsigned long now); extern int vmi_set_wallclock(unsigned long now);
extern unsigned long long vmi_sched_clock(void); extern unsigned long long vmi_sched_clock(void);
extern unsigned long vmi_cpu_khz(void); extern unsigned long vmi_tsc_khz(void);
#ifdef CONFIG_X86_LOCAL_APIC #ifdef CONFIG_X86_LOCAL_APIC
extern void __devinit vmi_time_bsp_init(void); extern void __devinit vmi_time_bsp_init(void);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册