Skip to content

Commit 498f816

Browse files
Wanpeng Libonzini
authored andcommitted
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 <[email protected]> Cc: Radim Krčmář <[email protected]> Cc: Yunhong Jiang <[email protected]> Signed-off-by: Wanpeng Li <[email protected]> Signed-off-by: Radim Krčmář <[email protected]>
1 parent a10388e commit 498f816

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

arch/x86/kvm/lapic.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1706,6 +1706,15 @@ void kvm_free_lapic(struct kvm_vcpu *vcpu)
17061706
* LAPIC interface
17071707
*----------------------------------------------------------------------
17081708
*/
1709+
u64 kvm_get_lapic_target_expiration_tsc(struct kvm_vcpu *vcpu)
1710+
{
1711+
struct kvm_lapic *apic = vcpu->arch.apic;
1712+
1713+
if (!lapic_in_kernel(vcpu))
1714+
return 0;
1715+
1716+
return apic->lapic_timer.tscdeadline;
1717+
}
17091718

17101719
u64 kvm_get_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu)
17111720
{

arch/x86/kvm/lapic.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ int kvm_apic_get_state(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s);
8585
int kvm_apic_set_state(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s);
8686
int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu);
8787

88+
u64 kvm_get_lapic_target_expiration_tsc(struct kvm_vcpu *vcpu);
8889
u64 kvm_get_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu);
8990
void kvm_set_lapic_tscdeadline_msr(struct kvm_vcpu *vcpu, u64 data);
9091

arch/x86/kvm/x86.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2794,7 +2794,7 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
27942794
}
27952795
if (kvm_lapic_hv_timer_in_use(vcpu) &&
27962796
kvm_x86_ops->set_hv_timer(vcpu,
2797-
kvm_get_lapic_tscdeadline_msr(vcpu)))
2797+
kvm_get_lapic_target_expiration_tsc(vcpu)))
27982798
kvm_lapic_switch_to_sw_timer(vcpu);
27992799
/*
28002800
* On a host with synchronized TSC, there is no need to update

0 commit comments

Comments
 (0)