DEFINE_PROP_BOOL("legacy-cache", X86CPU, legacy_cache, true),
DEFINE_PROP_BOOL("xen", X86CPU, xen, false),
DEFINE_PROP_BOOL("xen-vapic", X86CPU, xen_vapic, false),
+ DEFINE_PROP_BOOL("xen-pvclock", X86CPU, xen_pvclock, true),
DEFINE_PROP_UINT32("xen-major-version", X86CPU, xen_major_version, 3),
DEFINE_PROP_UINT32("xen-minor-version", X86CPU, xen_minor_version, 2),
*/
fi->submap = (1U << XENFEAT_auto_translated_physmap) |
(1U << XENFEAT_hvm_callback_vector);
+
+ if (cpu->xen_pvclock) {
+ fi->submap |= (1U << XENFEAT_hvm_safe_pvclock);
+ }
+
break;
}
}
kvm_xen_run_on_cpu(dest, xen_vcpu_set_evtchn, evtchn);
+ /* We want to offload timers where possible */
+ if (evtchn->virq == VIRQ_TIMER) {
+ kvm_set_xen_event(dest->kvm_state, evtchn, NULL);
+ }
+
out->port = evtchn->port;
return 0;