Lines Matching refs:lapic_timer
349 return apic->lapic_timer.timer_mode == APIC_LVT_TIMER_ONESHOT; in apic_lvtt_oneshot()
354 return apic->lapic_timer.timer_mode == APIC_LVT_TIMER_PERIODIC; in apic_lvtt_period()
359 return apic->lapic_timer.timer_mode == APIC_LVT_TIMER_TSCDEADLINE; in apic_lvtt_tscdeadline()
1310 apic->lapic_timer.period == 0) in apic_get_tmcct()
1314 remaining = ktime_sub(apic->lapic_timer.target_expiration, now); in apic_get_tmcct()
1318 ns = mod_64(ktime_to_ns(remaining), apic->lapic_timer.period); in apic_get_tmcct()
1487 if (apic_lvtt_period(apic) && apic->lapic_timer.period) { in limit_periodic_timer_frequency()
1490 if (apic->lapic_timer.period < min_period) { in limit_periodic_timer_frequency()
1495 apic->lapic_timer.period, min_period); in limit_periodic_timer_frequency()
1496 apic->lapic_timer.period = min_period; in limit_periodic_timer_frequency()
1505 hrtimer_cancel(&apic->lapic_timer.timer); in cancel_apic_timer()
1507 if (apic->lapic_timer.hv_timer_in_use) in cancel_apic_timer()
1515 apic->lapic_timer.timer_mode_mask; in apic_update_lvtt()
1517 if (apic->lapic_timer.timer_mode != timer_mode) { in apic_update_lvtt()
1522 apic->lapic_timer.period = 0; in apic_update_lvtt()
1523 apic->lapic_timer.tscdeadline = 0; in apic_update_lvtt()
1525 apic->lapic_timer.timer_mode = timer_mode; in apic_update_lvtt()
1555 u64 timer_advance_ns = vcpu->arch.apic->lapic_timer.timer_advance_ns; in __wait_lapic_expire()
1577 u32 timer_advance_ns = apic->lapic_timer.timer_advance_ns; in adjust_lapic_timer_advance()
1599 apic->lapic_timer.timer_advance_ns = timer_advance_ns; in adjust_lapic_timer_advance()
1607 tsc_deadline = apic->lapic_timer.expired_tscdeadline; in __kvm_wait_lapic_expire()
1608 apic->lapic_timer.expired_tscdeadline = 0; in __kvm_wait_lapic_expire()
1610 apic->lapic_timer.advance_expire_delta = guest_tsc - tsc_deadline; in __kvm_wait_lapic_expire()
1613 adjust_lapic_timer_advance(vcpu, apic->lapic_timer.advance_expire_delta); in __kvm_wait_lapic_expire()
1630 vcpu->arch.apic->lapic_timer.expired_tscdeadline && in kvm_wait_lapic_expire()
1631 vcpu->arch.apic->lapic_timer.timer_advance_ns && in kvm_wait_lapic_expire()
1639 struct kvm_timer *ktimer = &apic->lapic_timer; in kvm_apic_inject_pending_timer_irqs()
1653 struct kvm_timer *ktimer = &apic->lapic_timer; in apic_timer_expired()
1655 if (atomic_read(&apic->lapic_timer.pending)) in apic_timer_expired()
1675 if (vcpu->arch.apic->lapic_timer.expired_tscdeadline && in apic_timer_expired()
1676 vcpu->arch.apic->lapic_timer.timer_advance_ns) in apic_timer_expired()
1682 atomic_inc(&apic->lapic_timer.pending); in apic_timer_expired()
1690 struct kvm_timer *ktimer = &apic->lapic_timer; in start_sw_tscdeadline()
1711 likely(ns > apic->lapic_timer.timer_advance_ns)) { in start_sw_tscdeadline()
1731 apic->lapic_timer.period = in update_target_expiration()
1736 remaining = ktime_sub(apic->lapic_timer.target_expiration, now); in update_target_expiration()
1744 apic->lapic_timer.tscdeadline += in update_target_expiration()
1747 apic->lapic_timer.target_expiration = ktime_add_ns(now, ns_remaining_new); in update_target_expiration()
1757 apic->lapic_timer.period = in set_target_expiration()
1760 if (!apic->lapic_timer.period) { in set_target_expiration()
1761 apic->lapic_timer.tscdeadline = 0; in set_target_expiration()
1766 deadline = apic->lapic_timer.period; in set_target_expiration()
1773 deadline = apic->lapic_timer.period; in set_target_expiration()
1774 else if (unlikely(deadline > apic->lapic_timer.period)) { in set_target_expiration()
1782 deadline, apic->lapic_timer.period); in set_target_expiration()
1784 deadline = apic->lapic_timer.period; in set_target_expiration()
1789 apic->lapic_timer.tscdeadline = kvm_read_l1_tsc(apic->vcpu, tscl) + in set_target_expiration()
1791 apic->lapic_timer.target_expiration = ktime_add_ns(now, deadline); in set_target_expiration()
1809 apic->lapic_timer.target_expiration = in advance_periodic_target_expiration()
1810 ktime_add_ns(apic->lapic_timer.target_expiration, in advance_periodic_target_expiration()
1811 apic->lapic_timer.period); in advance_periodic_target_expiration()
1812 delta = ktime_sub(apic->lapic_timer.target_expiration, now); in advance_periodic_target_expiration()
1813 apic->lapic_timer.tscdeadline = kvm_read_l1_tsc(apic->vcpu, tscl) + in advance_periodic_target_expiration()
1819 if (!apic->lapic_timer.period) in start_sw_period()
1823 apic->lapic_timer.target_expiration)) { in start_sw_period()
1832 hrtimer_start(&apic->lapic_timer.timer, in start_sw_period()
1833 apic->lapic_timer.target_expiration, in start_sw_period()
1842 return vcpu->arch.apic->lapic_timer.hv_timer_in_use; in kvm_lapic_hv_timer_in_use()
1849 WARN_ON(!apic->lapic_timer.hv_timer_in_use); in cancel_hv_timer()
1851 apic->lapic_timer.hv_timer_in_use = false; in cancel_hv_timer()
1856 struct kvm_timer *ktimer = &apic->lapic_timer; in start_hv_timer()
1898 struct kvm_timer *ktimer = &apic->lapic_timer; in start_sw_timer()
1901 if (apic->lapic_timer.hv_timer_in_use) in start_sw_timer()
1917 if (!apic_lvtt_period(apic) && atomic_read(&apic->lapic_timer.pending)) in restart_apic_timer()
1932 if (!apic->lapic_timer.hv_timer_in_use) in kvm_lapic_expired_hv_timer()
1938 if (apic_lvtt_period(apic) && apic->lapic_timer.period) { in kvm_lapic_expired_hv_timer()
1959 if (apic->lapic_timer.hv_timer_in_use) in kvm_lapic_switch_to_sw_timer()
1969 WARN_ON(!apic->lapic_timer.hv_timer_in_use); in kvm_lapic_restart_hv_timer()
1975 atomic_set(&apic->lapic_timer.pending, 0); in __start_apic_timer()
2055 atomic_set(&apic->lapic_timer.pending, 0); in kvm_lapic_reg_write()
2097 val &= (apic_lvt_mask[0] | apic->lapic_timer.timer_mode_mask); in kvm_lapic_reg_write()
2117 apic->lapic_timer.period) { in kvm_lapic_reg_write()
2118 hrtimer_cancel(&apic->lapic_timer.timer); in kvm_lapic_reg_write()
2208 hrtimer_cancel(&apic->lapic_timer.timer); in kvm_free_lapic()
2234 return apic->lapic_timer.tscdeadline; in kvm_get_lapic_tscdeadline_msr()
2244 hrtimer_cancel(&apic->lapic_timer.timer); in kvm_set_lapic_tscdeadline_msr()
2245 apic->lapic_timer.tscdeadline = data; in kvm_set_lapic_tscdeadline_msr()
2338 hrtimer_cancel(&apic->lapic_timer.timer); in kvm_lapic_reset()
2372 atomic_set(&apic->lapic_timer.pending, 0); in kvm_lapic_reset()
2404 return atomic_read(&apic->lapic_timer.pending); in apic_has_pending_timer()
2440 struct kvm_lapic *apic = container_of(ktimer, struct kvm_lapic, lapic_timer); in apic_timer_fn()
2472 hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC, in kvm_create_lapic()
2474 apic->lapic_timer.timer.function = apic_timer_fn; in kvm_create_lapic()
2476 apic->lapic_timer.timer_advance_ns = LAPIC_TIMER_ADVANCE_NS_INIT; in kvm_create_lapic()
2479 apic->lapic_timer.timer_advance_ns = timer_advance_ns; in kvm_create_lapic()
2528 if (atomic_read(&apic->lapic_timer.pending) > 0) { in kvm_inject_apic_timer_irqs()
2530 atomic_set(&apic->lapic_timer.pending, 0); in kvm_inject_apic_timer_irqs()
2632 hrtimer_cancel(&apic->lapic_timer.timer); in kvm_apic_set_state()
2633 apic->lapic_timer.expired_tscdeadline = 0; in kvm_apic_set_state()
2665 timer = &vcpu->arch.apic->lapic_timer.timer; in __kvm_migrate_apic_timer()