mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-16 17:36:57 +07:00
x86/vmware: Remove vmware_sched_clock_setup()
Move cyc2ns setup logic to separate function. This separation will allow to use cyc2ns mult/shift pair not only for the sched_clock but also for other clocks such as steal_clock. Signed-off-by: Alexey Makhalov <amakhalov@vmware.com> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lkml.kernel.org/r/20200323195707.31242-3-amakhalov@vmware.com
This commit is contained in:
parent
14388ae245
commit
dd735f4707
@ -122,7 +122,7 @@ static unsigned long long notrace vmware_sched_clock(void)
|
||||
return ns;
|
||||
}
|
||||
|
||||
static void __init vmware_sched_clock_setup(void)
|
||||
static void __init vmware_cyc2ns_setup(void)
|
||||
{
|
||||
struct cyc2ns_data *d = &vmware_cyc2ns;
|
||||
unsigned long long tsc_now = rdtsc();
|
||||
@ -132,8 +132,7 @@ static void __init vmware_sched_clock_setup(void)
|
||||
d->cyc2ns_offset = mul_u64_u32_shr(tsc_now, d->cyc2ns_mul,
|
||||
d->cyc2ns_shift);
|
||||
|
||||
pv_ops.time.sched_clock = vmware_sched_clock;
|
||||
pr_info("using sched offset of %llu ns\n", d->cyc2ns_offset);
|
||||
pr_info("using clock offset of %llu ns\n", d->cyc2ns_offset);
|
||||
}
|
||||
|
||||
static void __init vmware_paravirt_ops_setup(void)
|
||||
@ -141,8 +140,14 @@ static void __init vmware_paravirt_ops_setup(void)
|
||||
pv_info.name = "VMware hypervisor";
|
||||
pv_ops.cpu.io_delay = paravirt_nop;
|
||||
|
||||
if (vmware_tsc_khz && vmw_sched_clock)
|
||||
vmware_sched_clock_setup();
|
||||
if (vmware_tsc_khz == 0)
|
||||
return;
|
||||
|
||||
vmware_cyc2ns_setup();
|
||||
|
||||
if (vmw_sched_clock)
|
||||
pv_ops.time.sched_clock = vmware_sched_clock;
|
||||
|
||||
}
|
||||
#else
|
||||
#define vmware_paravirt_ops_setup() do {} while (0)
|
||||
|
Loading…
Reference in New Issue
Block a user