local_tsc_khz = get_cpu_tsc_khz();
if (local_tsc_khz &&
- !kvm_get_walltime_and_clockread(&ts, &host_tsc))
+ !kvm_get_time_and_clockread(&ts.tv_sec, &host_tsc))
local_tsc_khz = 0; /* Fall back to old method */
hv_clock.tsc_timestamp = ka->master_cycle_now;
kvm_get_time_scale(NSEC_PER_SEC, local_tsc_khz * 1000LL,
&hv_clock.tsc_shift,
&hv_clock.tsc_to_system_mul);
+
+ uint64_t res = __pvclock_read_cycles(&hv_clock, host_tsc);
+ uint64_t d2 = ts.tv_sec + ka->kvmclock_offset;
+ printk("Calculated %lld (%lld/%lld delta %lld, ns %lld o %lld)\n",
+ res,
+ ts.tv_sec, d2, d2-res,
+ ka->master_kernel_ns, ka->kvmclock_offset);
+ if (0)
return ts.tv_nsec + NSEC_PER_SEC * ts.tv_sec -
__pvclock_read_cycles(&hv_clock, host_tsc);
}
wc->version = wc_version + 1;
read_unlock_irq(&gpc->lock);
- kvm_make_all_cpus_request(kvm, KVM_REQ_MASTERCLOCK_UPDATE);
+ //kvm_make_all_cpus_request(kvm, KVM_REQ_MASTERCLOCK_UPDATE);
out:
srcu_read_unlock(&kvm->srcu, idx);