Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 498f8162 authored by Wanpeng Li's avatar Wanpeng Li Committed by Paolo Bonzini
Browse files

KVM: LAPIC: introduce kvm_get_lapic_target_expiration_tsc()



Introdce kvm_get_lapic_target_expiration_tsc() to get APIC Timer target
deadline tsc.

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>
Signed-off-by: default avatarRadim Krčmář <rkrcmar@redhat.com>
parent a10388e1
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1706,6 +1706,15 @@ void kvm_free_lapic(struct kvm_vcpu *vcpu)
 * LAPIC interface
 *----------------------------------------------------------------------
 */
u64 kvm_get_lapic_target_expiration_tsc(struct kvm_vcpu *vcpu)
{
	struct kvm_lapic *apic = vcpu->arch.apic;

	if (!lapic_in_kernel(vcpu))
		return 0;

	return apic->lapic_timer.tscdeadline;
}

u64 kvm_get_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu)
{
+1 −0
Original line number Diff line number Diff line
@@ -85,6 +85,7 @@ int kvm_apic_get_state(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s);
int kvm_apic_set_state(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s);
int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu);

u64 kvm_get_lapic_target_expiration_tsc(struct kvm_vcpu *vcpu);
u64 kvm_get_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu);
void kvm_set_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu, u64 data);

+1 −1
Original line number Diff line number Diff line
@@ -2794,7 +2794,7 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
		}
		if (kvm_lapic_hv_timer_in_use(vcpu) &&
				kvm_x86_ops->set_hv_timer(vcpu,
					kvm_get_lapic_tscdeadline_msr(vcpu)))
					kvm_get_lapic_target_expiration_tsc(vcpu)))
			kvm_lapic_switch_to_sw_timer(vcpu);
		/*
		 * On a host with synchronized TSC, there is no need to update