• Wanpeng Li's avatar
    KVM: LAPIC: add APIC Timer periodic/oneshot mode VMX preemption timer support · 8003c9ae
    Wanpeng Li authored
    Most windows guests still utilize APIC Timer periodic/oneshot mode
    instead of tsc-deadline mode, and the APIC Timer periodic/oneshot
    mode are still emulated by high overhead hrtimer on host. This patch
    converts the expected expire time of the periodic/oneshot mode to
    guest deadline tsc in order to leverage VMX preemption timer logic
    for APIC Timer tsc-deadline mode. After each preemption timer vmexit
    preemption timer is restarted to emulate LVTT current-count register
    is automatically reloaded from the initial-count register when the
    count reaches 0. This patch reduces ~5600 cycles for each APIC Timer
    periodic mode operation virtualization.
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Yunhong Jiang <yunhong.jiang@intel.com>
    Signed-off-by: default avatarWanpeng Li <wanpeng.li@hotmail.com>
    [Squashed with my fixes that were reviewed-by Paolo.]
    Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
    8003c9ae
lapic.c 60.4 KB